https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/86912
___
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/86912
>From 8d4e349710f4ca84a7ad2dd8aa71afa50b730dbb Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Mon, 18 Mar 2024 08:36:55 +0800
Subject: [PATCH] [Modules] No transitive source location change
---
clang/includ
https://github.com/ChuanqiXu9 created
https://github.com/llvm/llvm-project/pull/86912
None
>From 9046d2156cb8641cccf76c643b6f88994105f452 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Mon, 18 Mar 2024 08:36:55 +0800
Subject: [PATCH] [Modules] No transitive source location change
---
clang/
ChuanqiXu9 wrote:
> > > > @iains @dwblaikie Understood. And I thought the major problem is that
> > > > there are a lot flags from clang modules. And it is indeed confusing.
> > > > But given we have to introduce new flags in this case, probably we can
> > > > only try to make it more clear by
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema
&S, VarDecl *CoroPromise,
return Calls;
}
Expr *CoroHandle = CoroHandleRes.get();
- CallExpr *AwaitSuspend = cast_or_null(
- BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/85050
___
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/85050
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
> Do I miss something? The performance and file size is similar with and
> without `-fgen-reduced-bmi`. To reproduce clone
> https://github.com/koplas/clang-modules-test and run `build.sh` and
> `build_thin_bmi.sh`.
Currently, the Reduced BMI will only remove function bodies
ChuanqiXu9 wrote:
> Using `-fgen-reduced-bmi` currently fails for me with a case that looks like
> this:
>
> ```c++
> // a.hpp
> template
> void ignore(T const &) noexcept {}
>
> inline void resultCheck(char const *message) {
> ignore(message);
> }
>
> // b.cppm
> modul
ChuanqiXu9 wrote:
@iains @dwblaikie Understood. And I thought the major problem is that there are
a lot flags from clang modules. And it is indeed confusing. But given we have
to introduce new flags in this case, probably we can only try to make it more
clear by better documents.
https://gith
@@ -3031,6 +3032,11 @@ defm skip_odr_check_in_gmf : BoolOption<"f",
"skip-odr-check-in-gmf",
"Perform ODR checks for decls in the global module fragment.">>,
Group;
+def gen_reduced_bmi : Flag<["-"], "fgen-reduced-bmi">,
ChuanqiXu9 wrote:
Done by
@@ -0,0 +1,53 @@
+// It is annoying to handle different slash direction
+// in Windows and Linux. So we disable the test on Windows
+// here.
+// REQUIRES: !system-windows
ChuanqiXu9 wrote:
Done
https://github.com/llvm/llvm-project/pull/85050
___
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/85050
>From 5fcccd75d0823ff11a4e385565cad65034d0def7 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Tue, 12 Mar 2024 17:26:49 +0800
Subject: [PATCH 1/2] [C++20] [Modules] Introduce -fgen-reduced-bmi
---
clang/inc
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema
&S, VarDecl *CoroPromise,
return Calls;
}
Expr *CoroHandle = CoroHandleRes.get();
- CallExpr *AwaitSuspend = cast_or_null(
- BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));
@@ -761,6 +761,13 @@ void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) {
}
}
+ // FIXME: Hack: We're out of bits in FunctionDeclBits, so always
+ // add this even though it's 0 in the vast majority of cases. We
+ // might really want to consider storing this in t
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema
&S, VarDecl *CoroPromise,
return Calls;
}
Expr *CoroHandle = CoroHandleRes.get();
- CallExpr *AwaitSuspend = cast_or_null(
- BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));
@@ -418,39 +448,60 @@ static ReadySuspendResumeResult buildCoawaitCalls(Sema
&S, VarDecl *CoroPromise,
return Calls;
}
Expr *CoroHandle = CoroHandleRes.get();
- CallExpr *AwaitSuspend = cast_or_null(
- BuildSubExpr(ACT::ACT_Suspend, "await_suspend", CoroHandle));
@@ -339,6 +339,9 @@ Bug Fixes in This Version
- Fixes an assertion failure on invalid code when trying to define member
functions in lambdas.
+- Clang now emits errors for coroutine `await_suspend` functions whose return
type is not
+ one of `void`, `bool`, or `std::corout
@@ -358,6 +364,30 @@ static Expr *maybeTailCall(Sema &S, QualType RetType, Expr
*E,
return S.MaybeCreateExprWithCleanups(JustAddress);
}
+static bool isSpecializationOfCoroutineHandle(Sema &S, QualType Ty,
+ SourceLocation Loc) {
https://github.com/ChuanqiXu9 approved this pull request.
LGTM
https://github.com/llvm/llvm-project/pull/85943
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
> > I am confused. If we don't need to check whether a type can be converted to
> > std::coroutine_handle, why do we still need EvaluateBinaryTypeTraits or
> > similar things.
>
> I thought your previous comment was to show concern about exposing
> `EvaluateBinaryTypeTraits`
ChuanqiXu9 wrote:
> In SemaExprCXX.cpp there's EvaluateBinaryTypeTraits that I needed to expose
> as suggested by the comment in SemaCoroutine. Is there an alternative way to
> do type coercion/equivalence checks?
I am confused. If we don't need to check whether a type can be converted to
`st
https://github.com/ChuanqiXu9 commented:
Dumping things from the source location makes me nervous... And giving this is
not related to named modules, I'd like to leave this for @Bigcheese
https://github.com/llvm/llvm-project/pull/85745
___
cfe-commit
@@ -0,0 +1,65 @@
+// This tests that the symmetric transfer at the final suspend point could
happen successfully.
ChuanqiXu9 wrote:
nit: I feel slightly better to add a link to the github page.
https://github.com/llvm/llvm-project/pull/85271
___
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/85271
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 approved this pull request.
LGTM. Thanks.
https://github.com/llvm/llvm-project/pull/85271
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
> > > > > The file we're looking for is `modules.json`; Renaming it
> > > > > `libc++.modules.json` like `.so` / `.a` file might be a better idea
> > > > > which could avoid name clashes when installed in `/usr/lib`.
> > > >
> > > >
> > > > but i didn't rename it, it was wit
ChuanqiXu9 wrote:
> I am also ok with changing the patch to reject programs whose await_suspend
> doesn't strictly return std::coroutine_handle if upstream prefers.
It should be good to do that since it makes the behavior more conforming. And
maybe it is better to do this a seperate patch.
Esp
ChuanqiXu9 wrote:
> > > The file we're looking for is `modules.json`; Renaming it
> > > `libc++.modules.json` like `.so` / `.a` file might be a better idea which
> > > could avoid name clashes when installed in `/usr/lib`.
> >
> >
> > but i didn't rename it, it was with the libc++ prefix dire
ChuanqiXu9 wrote:
/cherry-pick 0e1e1fc8f0e
https://github.com/llvm/llvm-project/pull/84881
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 milestoned
https://github.com/llvm/llvm-project/pull/84881
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
> The file we're looking for is `modules.json`; Renaming it
> `libc++.modules.json` like `.so` / `.a` file might be a better idea which
> could avoid name clashes when installed in `/usr/lib`.
BTW, how do you feel about the paragraph. I thought it as a defect in some
level.
ChuanqiXu9 wrote:
I'll backport this tomorrow if no revert request shows up.
https://github.com/llvm/llvm-project/pull/84881
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 closed
https://github.com/llvm/llvm-project/pull/84881
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Chuanqi Xu
Date: 2024-03-14T15:07:08+08:00
New Revision: 2582965c160486f9e3b0680f1cebc5ffdef9620c
URL:
https://github.com/llvm/llvm-project/commit/2582965c160486f9e3b0680f1cebc5ffdef9620c
DIFF:
https://github.com/llvm/llvm-project/commit/2582965c160486f9e3b0680f1cebc5ffdef9620c.diff
LO
https://github.com/ChuanqiXu9 ready_for_review
https://github.com/llvm/llvm-project/pull/85050
___
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/85050
>From e5114cdc6a77711dda6a13cbee9cd5cc42be48c6 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Tue, 12 Mar 2024 17:26:49 +0800
Subject: [PATCH] [C++20] [Modules] Introduce -fgen-reduced-bmi
---
clang/include
https://github.com/ChuanqiXu9 converted_to_draft
https://github.com/llvm/llvm-project/pull/85050
___
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/85050
This is the driver part of https://github.com/llvm/llvm-project/pull/75894.
This patch introduces '-fgen-reduced-bmi' to enable generating the reduced BMI.
This patch did:
- When `-fgen-reduced-bmi` is specif
Author: Chuanqi Xu
Date: 2024-03-13T13:57:52+08:00
New Revision: 4d62929852849f768d7397f634cfdebc85de96a4
URL:
https://github.com/llvm/llvm-project/commit/4d62929852849f768d7397f634cfdebc85de96a4
DIFF:
https://github.com/llvm/llvm-project/commit/4d62929852849f768d7397f634cfdebc85de96a4.diff
LO
Author: Chuanqi Xu
Date: 2024-03-13T11:22:32+08:00
New Revision: 5d7796e674224be54c48a8db981f4134845bcc7c
URL:
https://github.com/llvm/llvm-project/commit/5d7796e674224be54c48a8db981f4134845bcc7c
DIFF:
https://github.com/llvm/llvm-project/commit/5d7796e674224be54c48a8db981f4134845bcc7c.diff
LO
https://github.com/ChuanqiXu9 closed
https://github.com/llvm/llvm-project/pull/84285
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
I sent the new PR in https://github.com/llvm/llvm-project/pull/84881. See the
comments there for details.
https://github.com/llvm/llvm-project/pull/82160
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/
https://github.com/ChuanqiXu9 created
https://github.com/llvm/llvm-project/pull/84881
Following of https://github.com/llvm/llvm-project/pull/82160
The reason why the above PR fails is that the `--sysroot` has lower priority
than the libc++ built from the same source. On the one hand, it matche
@@ -893,102 +889,118 @@ int clang_scan_deps_main(int argc, char **argv, const
llvm::ToolContext &) {
if (Format == ScanningOutputFormat::Full)
FD.emplace(ModuleName.empty() ? Inputs.size() : 0);
- if (Verbose) {
-llvm::outs() << "Running clang-scan-deps on " << Inp
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/84285
>From 48b3261e1d217b7ce78180314a222dca4d6aba18 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Thu, 7 Mar 2024 15:19:28 +0800
Subject: [PATCH 1/5] [NFC] [C++20] [Modules] [P1689] [Scanner] Don't use
thread po
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/84285
>From 48b3261e1d217b7ce78180314a222dca4d6aba18 Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Thu, 7 Mar 2024 15:19:28 +0800
Subject: [PATCH 1/4] [NFC] [C++20] [Modules] [P1689] [Scanner] Don't use
thread po
@@ -744,6 +744,9 @@ getCompilationDataBase(int argc, char **argv, std::string
&ErrorMessage) {
return nullptr;
}
+ // Only 1 threads is required if P1689 per file mode.
+ NumThreads = 1;
ChuanqiXu9 wrote:
Oh, sorry. I don't know why I missed this som
ChuanqiXu9 wrote:
> > ClangGetUsedFilesFromModulesPlugin
>
> This has a hole where if a currently-unused file is not listed, but it is
> changed in such a way that it now matters (e.g., it changes include order,
> adds/removes includes, etc.), we need to recompile consumers.
>
> > what happen
ChuanqiXu9 wrote:
> @ChuanqiXu9 since you suggested this test approach
It looks like that I failed to understand VE is under X86 also...
> do you know whether this is the expected behavior of -sysroot ?
I am not sure. This is surprising to me too.
> The point is to build libraries and test
Author: Chuanqi Xu
Date: 2024-03-11T17:02:43+08:00
New Revision: 0f501c30b9601627c236f9abca8a3befba5dc161
URL:
https://github.com/llvm/llvm-project/commit/0f501c30b9601627c236f9abca8a3befba5dc161
DIFF:
https://github.com/llvm/llvm-project/commit/0f501c30b9601627c236f9abca8a3befba5dc161.diff
LO
ChuanqiXu9 wrote:
This commit breaks our coroutines library async_simple
`https://github.com/alibaba/async_simple` and here is a (relative) minimal
reproducer: https://godbolt.org/z/sG5jzcGEz
The reproducer comes from an implementation for async_simple::Generator
(https://github.com/alibaba/a
Author: Chuanqi Xu
Date: 2024-03-11T11:39:21+08:00
New Revision: 3f6bc1adf805681293c2ef0b93b708ff52244c00
URL:
https://github.com/llvm/llvm-project/commit/3f6bc1adf805681293c2ef0b93b708ff52244c00
DIFF:
https://github.com/llvm/llvm-project/commit/3f6bc1adf805681293c2ef0b93b708ff52244c00.diff
LO
https://github.com/ChuanqiXu9 closed
https://github.com/llvm/llvm-project/pull/79712
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
ChuanqiXu9 wrote:
I'll merge this since I find you may not have commit access.
https://github.com/llvm/llvm-project/pull/79712
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 approved this pull request.
LGTM.
https://github.com/llvm/llvm-project/pull/84519
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ChuanqiXu9 approved this pull request.
LGTM then. Thanks.
https://github.com/llvm/llvm-project/pull/79712
___
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/84285
>From dd9711be2368a299b408d0ff06ec9c1c0540083b Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Thu, 7 Mar 2024 15:19:28 +0800
Subject: [PATCH 1/3] [NFC] [C++20] [Modules] [P1689] [Scanner] Don't use
thread po
@@ -893,102 +889,118 @@ int clang_scan_deps_main(int argc, char **argv, const
llvm::ToolContext &) {
if (Format == ScanningOutputFormat::Full)
FD.emplace(ModuleName.empty() ? Inputs.size() : 0);
- if (Verbose) {
-llvm::outs() << "Running clang-scan-deps on " << Inp
@@ -893,102 +889,118 @@ int clang_scan_deps_main(int argc, char **argv, const
llvm::ToolContext &) {
if (Format == ScanningOutputFormat::Full)
FD.emplace(ModuleName.empty() ? Inputs.size() : 0);
- if (Verbose) {
-llvm::outs() << "Running clang-scan-deps on " << Inp
@@ -744,6 +744,9 @@ getCompilationDataBase(int argc, char **argv, std::string
&ErrorMessage) {
return nullptr;
}
+ // Only 1 threads is required if P1689 per file mode.
+ NumThreads = 1;
ChuanqiXu9 wrote:
Makes sense. Done.
https://github.com/llvm/l
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/84285
>From dd9711be2368a299b408d0ff06ec9c1c0540083b Mon Sep 17 00:00:00 2001
From: Chuanqi Xu
Date: Thu, 7 Mar 2024 15:19:28 +0800
Subject: [PATCH 1/2] [NFC] [C++20] [Modules] [P1689] [Scanner] Don't use
thread po
https://github.com/ChuanqiXu9 closed
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
https://github.com/ChuanqiXu9 created
https://github.com/llvm/llvm-project/pull/84285
I suddenly found that the clang scan deps may use all concurrent threads to
scan the files. It makes sense in the batch mode. But in P1689 per file mode,
it simply wastes times and resources.
This patch its
@@ -6898,10 +6898,18 @@ class Sema final {
BinaryOperatorKind Operator);
ActOnCXXThis - Parse 'this' pointer.
- ExprResult ActOnCXXThis(SourceLocation loc);
+ ///
+ /// \param SkipLambdaCaptureCheck Whether to skip the 'this' check
https://github.com/ChuanqiXu9 approved this pull request.
LGTM with the adding the comments.
https://github.com/llvm/llvm-project/pull/84193
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com
@@ -6898,10 +6898,18 @@ class Sema final {
BinaryOperatorKind Operator);
ActOnCXXThis - Parse 'this' pointer.
- ExprResult ActOnCXXThis(SourceLocation loc);
+ ///
+ /// \param SkipLambdaCaptureCheck Whether to skip the 'this' check
@@ -6898,10 +6898,18 @@ class Sema final {
BinaryOperatorKind Operator);
ActOnCXXThis - Parse 'this' pointer.
- ExprResult ActOnCXXThis(SourceLocation loc);
+ ///
+ /// \param SkipLambdaCaptureCheck Whether to skip the 'this' check
ChuanqiXu9 wrote:
> Can we add a release note and documentation for this? Thanks!
The current patch is transparent to users and it is only part of the series
patches. I'd like to document that after I made the series of patches.
https://github.com/llvm/llvm-project/pull/75894
_
Author: Chuanqi Xu
Date: 2024-03-06T15:46:55+08:00
New Revision: d3df2a834cf6febb44c699d109b9e7f622194837
URL:
https://github.com/llvm/llvm-project/commit/d3df2a834cf6febb44c699d109b9e7f622194837
DIFF:
https://github.com/llvm/llvm-project/commit/d3df2a834cf6febb44c699d109b9e7f622194837.diff
LO
ChuanqiXu9 wrote:
I am going to land this in the week later if no objections come in. I think it
is necessary to land the series of patches (to reduce the contents of BMI) for
clang19. And of course, the functionality will be opt in for one~two releases
for experimental.
https://github.com/ll
ChuanqiXu9 wrote:
> Do you expect to make any changes to type streaming?
I don't expect to do that explicitly. The number of types deserialized can be
decreased naturally after we avoid emitting declarations during the writing.
https://github.com/llvm/llvm-project/pull/75894
__
@@ -830,6 +843,19 @@ class PCHGenerator : public SemaConsumer {
bool hasEmittedPCH() const { return Buffer->IsComplete; }
};
+class ReducedBMIGenerator : public PCHGenerator {
+public:
+ ReducedBMIGenerator(const Preprocessor &PP, InMemoryModuleCache &ModuleCache,
+
ChuanqiXu9 wrote:
> * I do not want to block progress, so let's move forward with this patch for
> now.
Yeah. Great to see we have some progress finally. I think this is really
important since I see more and more peope complaninig the performance for
modules. I feel this series patch is key t
ChuanqiXu9 wrote:
> Thank you for references both.
>
> Actually, I'd like to have PR like #83961. Is it acceptable to merge this
> kind of PR in that case then?
I don't feel the patches are related. I think you can only format the changed
lines.
https://github.com/llvm/llvm-project/pull/8397
ChuanqiXu9 wrote:
Oh, I found it here: https://llvm.org/docs/CodingStandards.html#introduction
> Our long term goal is for the entire codebase to follow the convention, but
> we explicitly do not want patches that do large-scale reformatting of
> existing code.
https://github.com/llvm/llvm-pr
ChuanqiXu9 wrote:
I remember we have policies that we don't like patches which purely formats
codes. It makes backporting and cherry-picking harder. But I can't find the
wording now.
CC: @AaronBallman @Endilll
https://github.com/llvm/llvm-project/pull/83974
__
https://github.com/ChuanqiXu9 commented:
Thanks. This looks good to me except few nit comments.
Have you tested on a real world workloads?
https://github.com/llvm/llvm-project/pull/79712
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://
@@ -167,6 +167,53 @@ class CoroCloner {
} // end anonymous namespace
+// FIXME:
+// Lower the intrinisc in CoroEarly phase if coroutine frame doesn't escape
+// and it is known that other transformations, for example, sanitizers
+// won't lead to incorrect code.
+static void
@@ -338,6 +414,71 @@ static QualType getCoroutineSuspendExprReturnType(const
ASTContext &Ctx,
}
#endif
+llvm::Function *
+CodeGenFunction::generateAwaitSuspendWrapper(Twine const &CoroName,
+ Twine const &SuspendPointName,
+
https://github.com/ChuanqiXu9 edited
https://github.com/llvm/llvm-project/pull/79712
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -72,6 +72,10 @@ sections with improvements to Clang's support for those
languages.
C++ Language Changes
+C++14 Feature Support
+^
+- Sized deallocation is enabled by default in C++14 onwards.
ChuanqiXu9 wrote:
It m
@@ -0,0 +1,44 @@
+//===--- SizedDellocation.h - Sized Deallocation *- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apa
ChuanqiXu9 wrote:
@mordante if we want this for 18, we need to land and backport it in this week.
https://github.com/llvm/llvm-project/pull/82160
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cf
ChuanqiXu9 wrote:
> That'd mean that we "just" need to replace LazySpecializationInfo
> *LazySpecializations = nullptr; with the on-disk hash table approach. That
> would probably require centralizing that logic somewhere in the ASTReader
> (the way this PR does) but with minimal changes wrt D
https://github.com/ChuanqiXu9 updated
https://github.com/llvm/llvm-project/pull/83108
>From 59e1880df74434e3c446705788d92b5949d99536 Mon Sep 17 00:00:00 2001
From: Vassil Vassilev
Date: Sun, 7 Jan 2018 15:16:11 +0200
Subject: [PATCH 1/3] D41416: [modules] [pch] Do not deserialize all lazy
temp
ChuanqiXu9 wrote:
Weird. I only see two failures in my local environment:
```
Failed Tests (2):
Clang :: Modules/cxx-templates.cpp
Clang :: Modules/odr_hash.cpp
```
And I saw both of them in my patch. It is simply order mismatches.
https://github.com/llvm/llvm-project/pull/83108
__
ChuanqiXu9 wrote:
Oh, I didn't notice you've removed D153003 already. But the branch name looks
not good. So I've created a pr in
https://github.com/llvm/llvm-project/pull/83108
https://github.com/llvm/llvm-project/pull/76774
___
cfe-commits mailing
ChuanqiXu9 wrote:
Personally I feel this patch is good and the testing result from our workload
shows it is good too. But it looks like the performance testing results from
google @zygoloid @ilya-biryukov is not good. So maybe we need to wait for
landing this. (It will be great if @ilya-biryuk
https://github.com/ChuanqiXu9 created
https://github.com/llvm/llvm-project/pull/83108
This from https://reviews.llvm.org/D41416. And we plan to introduce on disk
hash table based on this. See https://github.com/llvm/llvm-project/pull/76774.
Following off are cited from https://reviews.llvm.org
ChuanqiXu9 wrote:
@rjmccall @dwblaikie
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
@@ -41,7 +41,7 @@ void TestCatch2() {
try {
}
// CHECK-NEXT:CXXCatchStmt
-// CHECK-NEXT: NULL
+// CHECK-NEXT: VarDecl {{.*}} ''
ChuanqiXu9 wrote:
Maybe we can improve to print this.
https://github.com/llvm/llvm-project/pull/80976
___
@@ -1053,6 +1053,10 @@ class VarDecl : public DeclaratorDecl, public
Redeclarable {
LLVM_PREFERRED_TYPE(bool)
unsigned ExceptionVar : 1;
+/// To Check the ellipsis
+LLVM_PREFERRED_TYPE(bool)
+unsigned EllipsisVar : 1;
ChuanqiXu9 wrote:
Sh
@@ -16983,7 +16983,7 @@ VarDecl *Sema::BuildExceptionDeclaration(Scope *S,
/// ActOnExceptionDeclarator - Parsed the exception-declarator in a C++ catch
/// handler.
-Decl *Sema::ActOnExceptionDeclarator(Scope *S, Declarator &D) {
+Decl *Sema::ActOnExceptionDeclarator(Scope *S
@@ -1053,6 +1053,10 @@ class VarDecl : public DeclaratorDecl, public
Redeclarable {
LLVM_PREFERRED_TYPE(bool)
unsigned ExceptionVar : 1;
+/// To Check the ellipsis
ChuanqiXu9 wrote:
The comment is not clear
https://github.com/llvm/llvm-project/p
@@ -2698,9 +2698,16 @@ StmtResult Parser::ParseCXXCatchBlock(bool FnCatch) {
Declarator ExDecl(DS, Attributes, DeclaratorContext::CXXCatch);
ParseDeclarator(ExDecl);
ExceptionDecl = Actions.ActOnExceptionDeclarator(getCurScope(), ExDecl);
- } else
-ConsumeToken
@@ -271,6 +271,9 @@ void TextNodeDumper::Visit(const Decl *D) {
OS << " hidden";
if (D->isImplicit())
OS << " implicit";
+ if (const VarDecl *ND = dyn_cast(D))
+ if (ND->isEllipsisVariable())
+ OS << " catch_all";
ChuanqiXu9 wrote:
ditto
https:
@@ -115,6 +115,10 @@ void JSONNodeDumper::Visit(const Decl *D) {
else if (D->isThisDeclarationReferenced())
JOS.attribute("isReferenced", true);
+ if (const VarDecl *ND = dyn_cast(D))
+ if (ND->isEllipsisVariable())
+ JOS.attribute("catch_all", true);
@@ -1474,6 +1478,16 @@ class VarDecl : public DeclaratorDecl, public
Redeclarable {
NonParmVarDeclBits.ExceptionVar = EV;
}
+ /// Determine the Ellipsis (...) or not
+ bool isEllipsisVariable() const {
+return isa(this) ? false : NonParmVarDeclBits.EllipsisVar;
+
https://github.com/ChuanqiXu9 commented:
+1 that we should reduce the impact of the patch as much as possible.
Also every time we change the data member of decls and stmts, we need to update
the serialization part.
https://github.com/llvm/llvm-project/pull/80976
__
801 - 900 of 1775 matches
Mail list logo