https://github.com/ChuanqiXu9 approved this pull request.
LGTM. Thanks.
https://github.com/llvm/llvm-project/pull/78589
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Chuanqi Xu
Date: 2024-01-18T17:09:35+08:00
New Revision: 085eae6b863881fb9fda323e5b672b04a00ed19e
URL:
https://github.com/llvm/llvm-project/commit/085eae6b863881fb9fda323e5b672b04a00ed19e
DIFF:
https://github.com/llvm/llvm-project/commit/085eae6b863881fb9fda323e5b672b04a00ed19e.diff
LO
@@ -11802,6 +11802,27 @@ static bool CheckMultiVersionFunction(Sema &S,
FunctionDecl *NewFD,
OldDecl, Previous);
}
+static void CheckFunctionDeclarationAttributesUsage(Sema &S,
+Funct
@@ -692,6 +692,13 @@ def warn_maybe_falloff_nonvoid_function : Warning<
def warn_falloff_nonvoid_function : Warning<
"non-void function does not return a value">,
InGroup;
+def warn_const_attr_with_pure_attr : Warning<
+ "'const' attribute imposes more restrictions, 'pure'
@@ -11802,6 +11802,27 @@ static bool CheckMultiVersionFunction(Sema &S,
FunctionDecl *NewFD,
OldDecl, Previous);
}
+static void CheckFunctionDeclarationAttributesUsage(Sema &S,
+Funct
https://github.com/ChuanqiXu9 approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/78200
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -692,6 +692,13 @@ def warn_maybe_falloff_nonvoid_function : Warning<
def warn_falloff_nonvoid_function : Warning<
"non-void function does not return a value">,
InGroup;
+def warn_const_attr_with_pure_attr : Warning<
+ "'const' attribute imposes more restrictions, 'pure'
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/78200
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
> > LGTM.
> > We need to delete
> > `clang/test/Driver/Inputs/cxx23_modules/usr/lib/x86_64-linux-gnu/libc++.so`
> > and
> > `clang/test/Driver/Inputs/cxx23_modules/usr/lib/x86_64-linux-gnu/modules.json`,
> > we should generate them with `split-file`
>
> Are you sure that is
https://github.com/ChuanqiXu9 approved this pull request.
LGTM then
https://github.com/llvm/llvm-project/pull/77066
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -15845,8 +15845,10 @@ void Sema::CheckCoroutineWrapper(FunctionDecl *FD) {
RecordDecl *RD = FD->getReturnType()->getAsRecordDecl();
if (!RD || !RD->getUnderlyingDecl()->hasAttr())
return;
- // Allow `get_return_object()`.
- if (FD->getDeclName().isIdentifier() &&
+
Author: Chuanqi Xu
Date: 2024-01-16T11:32:10+08:00
New Revision: 1b6c1a3bd73be4dd904230c637d65810cf3334cd
URL:
https://github.com/llvm/llvm-project/commit/1b6c1a3bd73be4dd904230c637d65810cf3334cd
DIFF:
https://github.com/llvm/llvm-project/commit/1b6c1a3bd73be4dd904230c637d65810cf3334cd.diff
LO
@@ -0,0 +1,28 @@
+// From https://github.com/llvm/llvm-project/issues/77953
+// RUN: rm -rf %t
+// RUN: mkdir -p %t
+// RUN: split-file %s %t
+
+// RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/a.cppm -o %t/a.pcm
+// RUN: %clang_cc1 -std=c++20 -fmodule-file=a=%t/a.pcm %t/b.
ChuanqiXu9 wrote:
> > @ilya-biryukov any chance you/your folks could test this change for
> > performance implications in google? It's especially helpful to CERN, but
> > the last iteration of this direction had some regressions that stalled out
> > progress on that version a few years ago, so
@@ -11889,6 +11889,13 @@ bool Sema::CheckFunctionDeclaration(Scope *S,
FunctionDecl *NewFD,
NewFD->setInvalidDecl();
}
+ if (NewFD->hasAttr() || NewFD->hasAttr()) {
+if (isa(NewFD))
+ Diag(NewFD->getLocation(), diag::warn_pure_attr_on_cxx_constructor);
+el
@@ -692,6 +692,13 @@ def warn_maybe_falloff_nonvoid_function : Warning<
def warn_falloff_nonvoid_function : Warning<
"non-void function does not return a value">,
InGroup;
+def warn_pure_attr_on_cxx_constructor : Warning<
+ "constructor cannot be 'pure' (undefined behavior
@@ -11889,6 +11889,13 @@ bool Sema::CheckFunctionDeclaration(Scope *S,
FunctionDecl *NewFD,
NewFD->setInvalidDecl();
}
+ if (NewFD->hasAttr() || NewFD->hasAttr()) {
+if (isa(NewFD))
+ Diag(NewFD->getLocation(), diag::warn_pure_attr_on_cxx_constructor);
+el
@@ -15845,8 +15845,10 @@ void Sema::CheckCoroutineWrapper(FunctionDecl *FD) {
RecordDecl *RD = FD->getReturnType()->getAsRecordDecl();
if (!RD || !RD->getUnderlyingDecl()->hasAttr())
return;
- // Allow `get_return_object()`.
- if (FD->getDeclName().isIdentifier() &&
+
@@ -7575,15 +7577,27 @@ static void
visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call,
Path.pop_back();
};
- if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee))
-VisitLifetimeBoundArg(Callee, ObjectArg);
-
bool CheckCoroCall = false;
if
https://github.com/ChuanqiXu9 approved this pull request.
LGTM then.
https://github.com/llvm/llvm-project/pull/77465
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -15845,8 +15845,10 @@ void Sema::CheckCoroutineWrapper(FunctionDecl *FD) {
RecordDecl *RD = FD->getReturnType()->getAsRecordDecl();
if (!RD || !RD->getUnderlyingDecl()->hasAttr())
return;
- // Allow `get_return_object()`.
- if (FD->getDeclName().isIdentifier() &&
+
ChuanqiXu9 wrote:
@vsapsai gentle ping~
https://github.com/llvm/llvm-project/pull/76119
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Chuanqi Xu
Date: 2024-01-15T17:00:49+08:00
New Revision: 7bc170a261ae0daaddcc1abeacf7e9e0f1f66d02
URL:
https://github.com/llvm/llvm-project/commit/7bc170a261ae0daaddcc1abeacf7e9e0f1f66d02
DIFF:
https://github.com/llvm/llvm-project/commit/7bc170a261ae0daaddcc1abeacf7e9e0f1f66d02.diff
LO
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/76451
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/76451
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -33,6 +34,7 @@
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
+#include "llvm/Support/Casting.h"
ChuanqiXu9 wrote:
Maybe we don't need this?
https://github.com/llvm/llvm-project/pull/77066
___
@@ -15845,8 +15845,10 @@ void Sema::CheckCoroutineWrapper(FunctionDecl *FD) {
RecordDecl *RD = FD->getReturnType()->getAsRecordDecl();
if (!RD || !RD->getUnderlyingDecl()->hasAttr())
return;
- // Allow `get_return_object()`.
- if (FD->getDeclName().isIdentifier() &&
+
@@ -1796,6 +1797,32 @@ bool CoroutineStmtBuilder::makeOnException() {
return true;
}
+// Adds [[clang::coro_wrapper]] and [[clang::coro_disable_lifetimebound]]
+// attributes to the function `get_return_object`.
ChuanqiXu9 wrote:
```suggestion
// attributes
@@ -1796,6 +1797,32 @@ bool CoroutineStmtBuilder::makeOnException() {
return true;
}
+// Adds [[clang::coro_wrapper]] and [[clang::coro_disable_lifetimebound]]
+// attributes to the function `get_return_object`.
+static void handleGetReturnObject(Sema &S, Expr *E) {
+ if (a
https://github.com/ChuanqiXu9 approved this pull request.
LGTM.
While we need to delete
`clang/test/Driver/Inputs/cxx23_modules/usr/lib/x86_64-linux-gnu/libc++.so` and
`clang/test/Driver/Inputs/cxx23_modules/usr/lib/x86_64-linux-gnu/modules.json`.
https://github.com/llvm/llvm-project/pull/764
https://github.com/ChuanqiXu9 approved this pull request.
LGTM. Thanks for your patience.
https://github.com/llvm/llvm-project/pull/69076
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit
Author: Chuanqi Xu
Date: 2024-01-12T14:16:19+08:00
New Revision: 4b99af34199208e82f6a8806bfae1d3dea007936
URL:
https://github.com/llvm/llvm-project/commit/4b99af34199208e82f6a8806bfae1d3dea007936
DIFF:
https://github.com/llvm/llvm-project/commit/4b99af34199208e82f6a8806bfae1d3dea007936.diff
LO
Author: Chuanqi Xu
Date: 2024-01-12T13:47:59+08:00
New Revision: dc4e85bd79ff17014cbbe4a9db1d9b91929e91ce
URL:
https://github.com/llvm/llvm-project/commit/dc4e85bd79ff17014cbbe4a9db1d9b91929e91ce
DIFF:
https://github.com/llvm/llvm-project/commit/dc4e85bd79ff17014cbbe4a9db1d9b91929e91ce.diff
LO
@@ -297,6 +297,26 @@ struct ReadySuspendResumeResult {
bool IsInvalid;
};
+// Adds [[clang::coro_wrapper]] and [[clang::coro_disable_lifetimebound]]
+// attributes to `get_return_object`.
+static void handleGetReturnObject(Sema &S, MemberExpr *ME) {
+ if (!ME || !ME->getMem
@@ -6135,6 +6141,42 @@ std::string Driver::GetProgramPath(StringRef Name, const
ToolChain &TC) const {
return std::string(Name);
}
+std::string Driver::GetStdModuleManifestPath(const Compilation &C,
+ const ToolChain &TC) const {
@@ -0,0 +1,15 @@
+// Test that -print-library-module-manifest-path finds the correct file.
+
+// RUN: %clang -print-library-module-manifest-path \
+// RUN: -stdlib=libc++ \
+// RUN: --sysroot=%S/Inputs/cxx23_modules \
+// RUN: --target=x86_64-linux-gnu 2>&1 \
+// RUN:
@@ -6135,6 +6141,42 @@ std::string Driver::GetProgramPath(StringRef Name, const
ToolChain &TC) const {
return std::string(Name);
}
+std::string Driver::GetStdModuleManifestPath(const Compilation &C,
+ const ToolChain &TC) const {
https://github.com/ChuanqiXu9 commented:
LGTM generally.
https://github.com/llvm/llvm-project/pull/76451
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,9 @@
+// Test that -print-library-module-manifest-path finds the correct file.
+//
+// Note this file is currently not available on Apple platforms
ChuanqiXu9 wrote:
I don't get the intention for the test since there is standard library related
things
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/76451
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/76774
>From 50fd47f2bfda527807f8cc5e46425050246868aa Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Wed, 3 Jan 2024 11:33:17 +0800
Subject: [PATCH 1/3] Load Specializations Lazily
---
clang/include/clang/AST/Decl
ChuanqiXu9 wrote:
Update:
Previously we will always try to load the specializations with the
corresponding arguments before finding the specializations. This
requires to hash the template arguments.
This patch tries to improve this by trying to load the specializations
only if
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/76774
>From 50fd47f2bfda527807f8cc5e46425050246868aa Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Wed, 3 Jan 2024 11:33:17 +0800
Subject: [PATCH 1/3] Load Specializations Lazily
---
clang/include/clang/AST/Decl
@@ -7575,15 +7577,27 @@ static void
visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call,
Path.pop_back();
};
- if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee))
-VisitLifetimeBoundArg(Callee, ObjectArg);
-
bool CheckCoroCall = false;
if
ChuanqiXu9 wrote:
> @ChuanqiXu9, this PR does not seem to compile. Can you make the second commit
> work before I start testing?
Oh, sorry. It should work now!
https://github.com/llvm/llvm-project/pull/76774
___
cfe-commits mailing list
cfe-commits@l
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/76774
>From 50fd47f2bfda527807f8cc5e46425050246868aa Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Wed, 3 Jan 2024 11:33:17 +0800
Subject: [PATCH 1/2] Load Specializations Lazily
---
clang/include/clang/AST/Decl
ChuanqiXu9 wrote:
Can you provide more context for this?
https://github.com/llvm/llvm-project/pull/77465
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
> Have you run that patch on bigger workflows? Do we have some performance
> numbers to compare?
I've tested it functionality in our largest workload about modules. It runs
well. But our uses of modules don't have a lot of complexities while it has a
large scale. For perform
@@ -100,6 +100,11 @@ ExternalASTSource::FindExternalVisibleDeclsByName(const
DeclContext *DC,
return false;
}
+void ExternalASTSource::LoadExternalSpecializations(
+const Decl *D, ArrayRef TemplateArgs) {
+ return;
ChuanqiXu9 wrote:
Will do in the nex
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/76774
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/76774
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
> I failed to use spr to create stacked review... So I just create the stacked
> PR manually: #77417. Luckily the context are remained. I heard the current
> context may be lost if we change to use spr now.
https://github.com/llvm/llvm-project/pull/76774
___
@@ -527,6 +527,10 @@ class ASTWriter : public ASTDeserializationListener,
bool isLookupResultExternal(StoredDeclsList &Result, DeclContext *DC);
bool isLookupResultEntirelyExternal(StoredDeclsList &Result, DeclContext
*DC);
+ uint64_t
+ WriteSpecsLookupTable(NamedDecl *
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
Done
https://github.com/llvm/llvm-project/
ChuanqiXu9 wrote:
I failed to use spr to create stacked review... So I just create the stacked PR
manually: https://github.com/llvm/llvm-project/pull/77417
https://github.com/llvm/llvm-project/pull/76774
___
cfe-commits mailing list
cfe-commits@lists.
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/76774
>From 50fd47f2bfda527807f8cc5e46425050246868aa Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Wed, 3 Jan 2024 11:33:17 +0800
Subject: [PATCH] Load Specializations Lazily
---
clang/include/clang/AST/DeclTemp
@@ -7575,15 +7577,27 @@ static void
visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call,
Path.pop_back();
};
- if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee))
-VisitLifetimeBoundArg(Callee, ObjectArg);
-
bool CheckCoroCall = false;
if
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/77066
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -7575,15 +7577,27 @@ static void
visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call,
Path.pop_back();
};
- if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee))
-VisitLifetimeBoundArg(Callee, ObjectArg);
-
bool CheckCoroCall = false;
if
@@ -7575,15 +7577,27 @@ static void
visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call,
Path.pop_back();
};
- if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee))
-VisitLifetimeBoundArg(Callee, ObjectArg);
-
bool CheckCoroCall = false;
if
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
Yeah, I just saw it. My concern for reinven
ChuanqiXu9 wrote:
> > > This is a great way to start a new year ;)
> > > The phab link is https://reviews.llvm.org/D41416.
> > > In general I was wondering could we simplify the implementation by
> > > loading the specialization hash table upon module load. That should be
> > > relatively cheap
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
It looks like the qualified related problem
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
I had this
https://github.com/llvm/llvm-pr
ChuanqiXu9 wrote:
> Well, this patch is up since almost three months now (!). Sure, we can keep
> carrying a similar fix downstream, but ideally I would really like to get rid
> of as many local changes as possible. That's not possible without proper
> review, but the current situation is quit
ChuanqiXu9 wrote:
> Ping, is this ok to be accepted and landed?
If it is not hurry, I prefer to wait @cor3ntin to have a look. But given the
scale of the patch, it should be good too to land it in 2 weeks if there is no
other comments.
https://github.com/llvm/llvm-project/pull/69076
_
@@ -15754,10 +15754,18 @@ bool Expr::EvaluateAsInitializer(APValue &Value,
const ASTContext &Ctx,
LValue LVal;
LVal.set(VD);
-if (!EvaluateInPlace(Value, Info, LVal, this,
- /*AllowNonLiteralTypes=*/true) ||
-EStatus.HasSideEffects)
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
The secret why ODRHash can handle this may
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
I tried to add a test case to show the prob
Author: Chuanqi Xu
Date: 2024-01-08T14:46:11+08:00
New Revision: 9b808a4beb8e6c8255b412fdd6f5a3e20cbcf270
URL:
https://github.com/llvm/llvm-project/commit/9b808a4beb8e6c8255b412fdd6f5a3e20cbcf270
DIFF:
https://github.com/llvm/llvm-project/commit/9b808a4beb8e6c8255b412fdd6f5a3e20cbcf270.diff
LO
@@ -0,0 +1,50 @@
+// REQUIRES: !system-windows
+
+// RUN: rm -rf %t
+// RUN: split-file %s %t
+// RUN: cd %t
+//
+// RUN: %clang_cc1 -std=c++20 %t/layer1.cppm -triple %itanium_abi_triple \
+// RUN: -emit-module-interface -o %t/foo-layer1.pcm
+// RUN: %clang_cc1 -std=c++20 %t/l
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/77066
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/77066
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -7575,15 +7577,27 @@ static void
visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call,
Path.pop_back();
};
- if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee))
-VisitLifetimeBoundArg(Callee, ObjectArg);
-
bool CheckCoroCall = false;
if
@@ -7575,15 +7577,27 @@ static void
visitLifetimeBoundArguments(IndirectLocalPath &Path, Expr *Call,
Path.pop_back();
};
- if (ObjectArg && implicitObjectParamIsLifetimeBound(Callee))
-VisitLifetimeBoundArg(Callee, ObjectArg);
-
bool CheckCoroCall = false;
if
https://github.com/ChuanqiXu9 commented:
Maybe it'll be better to say this is related to `[[coro_lifetimebound]]`. My
instinct reaction to this is that "no, this is not strictly correct". But I
feel good after I know it is an extension of `[[coro_lifetimebound]]` only.
https://github.com/llvm/
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
Great analysis. Fair enough, let's find a m
https://github.com/ChuanqiXu9 approved this pull request.
I feel good with this. We can do other improvements in other patches.
https://github.com/llvm/llvm-project/pull/76818
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.o
ChuanqiXu9 wrote:
> I'm Sam's colleague and wanted to mention that Sam won't be available until
> January 15. It probably does not make much sense for someone else to take
> over at this point as the change is large and waiting for Sam is more
> efficient than ramping up someone else at this p
@@ -1249,3 +1249,5 @@ void ODRHash::AddQualType(QualType T) {
void ODRHash::AddBoolean(bool Value) {
Bools.push_back(Value);
}
+
+void ODRHash::AddInteger(unsigned Value) { ID.AddInteger(Value); }
ChuanqiXu9 wrote:
Interesting. I didn't recognize this. If th
@@ -2431,10 +2434,14 @@ void
ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) {
mergeRedeclarableTemplate(D, Redecl);
if (ThisDeclID == Redecl.getFirstID()) {
-// This ClassTemplateDecl owns a CommonPtr; read it to keep track of all of
-// the specializ
@@ -527,6 +527,10 @@ class ASTWriter : public ASTDeserializationListener,
bool isLookupResultExternal(StoredDeclsList &Result, DeclContext *DC);
bool isLookupResultEntirelyExternal(StoredDeclsList &Result, DeclContext
*DC);
+ uint64_t
+ WriteSpecsLookupTable(NamedDecl *
@@ -150,6 +150,11 @@ class ExternalASTSource : public
RefCountedBase {
virtual bool
FindExternalVisibleDeclsByName(const DeclContext *DC, DeclarationName Name);
+ /// Load all the external specialzations for the Decl and the corresponding
+ /// template arguments.
+ vi
ChuanqiXu9 wrote:
> This is a great way to start a new year ;)
>
> The phab link is https://reviews.llvm.org/D41416.
>
> In general I was wondering could we simplify the implementation by loading
> the specialization hash table upon module load. That should be relatively
> cheap as we will re
Author: Chuanqi Xu
Date: 2024-01-05T11:31:22+08:00
New Revision: f5fd1836836e0d37dea61cc842199713cc0e2fc4
URL:
https://github.com/llvm/llvm-project/commit/f5fd1836836e0d37dea61cc842199713cc0e2fc4
DIFF:
https://github.com/llvm/llvm-project/commit/f5fd1836836e0d37dea61cc842199713cc0e2fc4.diff
LO
ChuanqiXu9 wrote:
> > Like I said in the commit message, this patch itself doesn't involve
> > anything relevant to user interfaces. I left it to the latter patches.
>
> Are you in a position to post the next patch (at least as a draft)? That
> would help me see the direction.
I post it here
https://github.com/ChuanqiXu9 converted_to_draft
https://github.com/llvm/llvm-project/pull/76930
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 created
https://github.com/llvm/llvm-project/pull/76930
This was a patch to try to implement eliding unreachable decls in GMF in
ASTWriter. It was developed a half year ago and I just rebased it but I did't
fix the failing test. It ran well.
The core idea of the
ChuanqiXu9 wrote:
> @ChuanqiXu9 very sorry for the slow review. It would help me if the design
> was described in the commit message instead of trying to deduce it from the
> patch (maybe it's in a thread somewhere - so a cross-reference would help).
hi @iains , sorry for the confusion. It may
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/76774
>From 79cefc9f0f006acd788b6ac4e240c17d9deadf13 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Wed, 3 Jan 2024 11:33:17 +0800
Subject: [PATCH] Load Specializations Lazily
---
clang/include/clang/AST/DeclTemp
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/76774
>From af6f8ca9b739c532a489881245fac1413ec84a07 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Wed, 3 Jan 2024 11:33:17 +0800
Subject: [PATCH] Load Specializations Lazily
---
clang/include/clang/AST/DeclTemp
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/76774
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 created
https://github.com/llvm/llvm-project/pull/76774
The idea comes from @vgvassilev and @vgvassilev had patch for it on phab.
Unfortunately phab is closed and I forgot the Dxxx number of that patch. But I
remember the last comment from @vgvassilev is that we s
ChuanqiXu9 wrote:
@iains @dwblaikie ping~
https://github.com/llvm/llvm-project/pull/75894
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
@dwblaikie @rjmccall ping~
https://github.com/llvm/llvm-project/pull/75912
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
@sam-mccall ping~ what's the fate of the patch?
https://github.com/llvm/llvm-project/pull/66462
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2164,6 +2164,12 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}
+ if (C.getArgs().hasArg(options::OPT_print_library_module_manifest_path)) {
+llvm::outs() << "module: ="
ChuanqiXu9 wrote:
But "module: =" doesn't look
@@ -2164,6 +2164,12 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}
+ if (C.getArgs().hasArg(options::OPT_print_library_module_manifest_path)) {
+llvm::outs() << "module: ="
ChuanqiXu9 wrote:
I don't get why we can't jus
@@ -0,0 +1,15 @@
+// Test that -print-library-module-manifest-path finds the correct file.
ChuanqiXu9 wrote:
Let's change the suffix of this file to `.cpp`
https://github.com/llvm/llvm-project/pull/76451
___
cfe-commit
@@ -0,0 +1,9 @@
+// Test that -print-library-module-manifest-path finds the correct file.
ChuanqiXu9 wrote:
Let's change the suffix.
https://github.com/llvm/llvm-project/pull/76451
___
cfe-commits mailing list
cfe-comm
1101 - 1200 of 1807 matches
Mail list logo