Page MenuHomePhabricator

ChuanqiXu (Chuanqi Xu)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 22 2020, 11:08 PM (100 w, 4 d)

Recent Activity

Yesterday

ChuanqiXu added inline comments to D126189: [C++20][Modules] Build module static initializers per P1874R1..
Fri, May 27, 5:36 AM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D120540: [Driver] Enable to use C++20 modules standalone by -fcxx-modules.

@iains Do you agree to submit this one first? Since all the discussions/questions I see in this page now it not about the patch itself. The patch itself should be good personally I thought.

Fri, May 27, 12:57 AM · Restricted Project, Restricted Project
ChuanqiXu abandoned D119409: [C++20] [Modules] Remain dynamic initializing internal-linkage variables in module interface unit .

Prefer https://reviews.llvm.org/D126189

Fri, May 27, 12:55 AM · Restricted Project, Restricted Project

Thu, May 26

ChuanqiXu added inline comments to D126189: [C++20][Modules] Build module static initializers per P1874R1..
Thu, May 26, 8:15 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D126277: [Debug] [Coroutines] Add deref operator for non complex expression.

what scenarios is salvageDebugInfo called in? I'm trying to reason about when the isComplex test might be necessary.

Thu, May 26, 7:51 PM · Restricted Project, Restricted Project
ChuanqiXu updated the diff for D126277: [Debug] [Coroutines] Add deref operator for non complex expression.

Address comments.

Thu, May 26, 7:35 PM · Restricted Project, Restricted Project
ChuanqiXu added inline comments to D126189: [C++20][Modules] Build module static initializers per P1874R1..
Thu, May 26, 12:31 AM · Restricted Project, Restricted Project
ChuanqiXu added inline comments to D126189: [C++20][Modules] Build module static initializers per P1874R1..
Thu, May 26, 12:15 AM · Restricted Project, Restricted Project

Wed, May 25

ChuanqiXu added a comment to D126355: [FuncSpec]Fix assertion failure when lattice value is not found..

We should generate a patch with option -U9999 to offer more context to review.

Wed, May 25, 2:40 AM · Restricted Project, Restricted Project

Tue, May 24

ChuanqiXu added inline comments to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).
Tue, May 24, 11:45 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu updated the diff for D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).

Address comments.

Tue, May 24, 11:43 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu committed rGa1ffba8d5286: [C++20] [Coroutines] Conform the updates for CWG issue 2585 (authored by ChuanqiXu).
[C++20] [Coroutines] Conform the updates for CWG issue 2585
Tue, May 24, 7:32 PM · Restricted Project, Restricted Project
ChuanqiXu closed D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585.
Tue, May 24, 7:32 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a comment to D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585.

I think I have a preference to move it to CodeGenCXX anyway however, since we're actually testing the code-generated output (this is not novel, we DO often use CodeGen tests to make sure proper overloads/etc get called).

Tue, May 24, 7:30 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu updated the diff for D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585.

Address comments.

Tue, May 24, 7:27 PM · Restricted Project, Restricted Project, Restricted Project

Mon, May 23

ChuanqiXu requested review of D126277: [Debug] [Coroutines] Add deref operator for non complex expression.
Mon, May 23, 11:34 PM · Restricted Project, Restricted Project
ChuanqiXu added inline comments to D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585.
Mon, May 23, 7:29 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu updated the diff for D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585.

Address comments.

Mon, May 23, 7:21 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a reviewer for D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585: Restricted Project.
Mon, May 23, 1:38 AM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a project to D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585: Restricted Project.
Mon, May 23, 1:38 AM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu requested review of D126187: [C++20] [Coroutines] Conform the updates for CWG issue 2585.
Mon, May 23, 1:38 AM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a reverting change for rG1b89a25a9b96: [C++20] [Coroutines] Conform the updates for CWG issue 2585: rG9e9cf3fa3d28: Revert "[C++20] [Coroutines] Conform the updates for CWG issue 2585".
Mon, May 23, 1:22 AM · Restricted Project, Restricted Project
ChuanqiXu committed rG9e9cf3fa3d28: Revert "[C++20] [Coroutines] Conform the updates for CWG issue 2585" (authored by ChuanqiXu).
Revert "[C++20] [Coroutines] Conform the updates for CWG issue 2585"
Mon, May 23, 1:22 AM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D119544: Deferred Concept Instantiation Implementation.

Updated to include the fix for the libcxx issue, which was that we weren't properly differentiating between 'friend' functions based on concepts. I'll likely be submitting this early monday or so, but would like to give @ChuanqiXu a chance to check out the changes.

This is the same as my 'last' committed version of this patch, plus the changes I split out into here for easier review: https://reviews.llvm.org/D125020

Sorry that I missed the ping. The change in that revision looks good to me.

I THINK what we want to do instead of trying to 're setup' the template arguments (and instead of just 'keeping' the uninstantiated expression) is to run some level of 'tree-transform' that updates the names of the template parameters (including depths/etc), but without doing lookup. This I think would fix our 'friend function' issue, and our 'comparing constraints' stuff work correctly as well (rather than storing an instantiated version, but not reusing it except for comparing them).

I agree this should be a better direction.

I actually got a response from Richard who seems to be more in favor of the solution I tried initially (the one in this patch!). The problems I have with it I think get solved by the 'friend function' rules that I pasted above, so I THINK I can fix those and be ok. I'll still need SOME level of tree-transform, but only to see if it depends on the enclosing template.

Mon, May 23, 12:56 AM · Restricted Project, Restricted Project
ChuanqiXu committed rG1b89a25a9b96: [C++20] [Coroutines] Conform the updates for CWG issue 2585 (authored by ChuanqiXu).
[C++20] [Coroutines] Conform the updates for CWG issue 2585
Mon, May 23, 12:51 AM · Restricted Project, Restricted Project

Thu, May 19

ChuanqiXu added a comment to D119544: Deferred Concept Instantiation Implementation.

Updated to include the fix for the libcxx issue, which was that we weren't properly differentiating between 'friend' functions based on concepts. I'll likely be submitting this early monday or so, but would like to give @ChuanqiXu a chance to check out the changes.

This is the same as my 'last' committed version of this patch, plus the changes I split out into here for easier review: https://reviews.llvm.org/D125020

Thu, May 19, 8:07 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D113545: [C++20] [Module] Support reachable definition initially/partially.

@rsmith gentle ping~

Thu, May 19, 7:16 PM · Restricted Project, Restricted Project

Wed, May 18

ChuanqiXu added inline comments to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).
Wed, May 18, 11:36 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu updated the diff for D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).

Cleanup codes.

Wed, May 18, 11:35 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu updated the diff for D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).

Address comments:

  • Lowering the introduced intrinsic in CodeGen pipelines.
Wed, May 18, 11:32 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu edited reviewers for D125292: [Coroutines] Introduce "coro_readnone" operand bundles (2/3), added: efriedma; removed: eli.friedman.
Wed, May 18, 7:30 PM · Restricted Project, Restricted Project
ChuanqiXu edited reviewers for D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3), added: efriedma; removed: eli.friedman.
Wed, May 18, 7:30 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a comment to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).

I don't really understand how this is supposed to interact with D125292; even if you strip the readnone attribute from the call instruction, we'll still treat a call to the intrinsic as readnone.

Wed, May 18, 7:18 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a comment to D125292: [Coroutines] Introduce "coro_readnone" operand bundles (2/3).

I don't think we reached a consensus this is the right approach; please ping the Discourse thread.

Wed, May 18, 7:14 PM · Restricted Project, Restricted Project

Tue, May 17

ChuanqiXu added a comment to D125847: LTO: Decide upfront whether to use opaque/non-opaque pointer types.

I think it is better to add some tests at least.

Tue, May 17, 8:51 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a comment to D125541: [clang][PR55406] co_return CFG fix.

Please clarify. This is fixing a bug where the CFG was being incorrectly constructed.

Tue, May 17, 8:45 PM · Restricted Project
ChuanqiXu requested changes to D125825: [clang][NFC] Augment CoreturnStmt.

This is not correct. Any change to the AST node requires change to Serialization too.

Tue, May 17, 7:22 PM · Restricted Project
ChuanqiXu added a comment to D125540: [clang] dependent co_return fix.

What's the reason you removed me as a reviewer? I don't think I did any thing bad.

Tue, May 17, 7:17 PM · Restricted Project

Mon, May 16

ChuanqiXu added a comment to D125292: [Coroutines] Introduce "coro_readnone" operand bundles (2/3).

Although this one is marked (2/3) in the title, it is independent with the previous revision logically. We could review and submit this one independently.

Mon, May 16, 11:07 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).

@rjmccall @eli.friedman @jyknight gentle ping~

Mon, May 16, 11:06 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu added a comment to D125541: [clang][PR55406] co_return CFG fix.

This one looks like a workaround for me. It tries to skip a CFG check for the operand of return_value to avoid a potential crash. The true solution should be to construct the CFG correctly.

Mon, May 16, 11:05 PM · Restricted Project
ChuanqiXu added inline comments to D125540: [clang] dependent co_return fix.
Mon, May 16, 8:50 PM · Restricted Project
ChuanqiXu committed rG452fac9534c0: [Frontend] [Coroutines] Emit error when we found incompatible allocation (authored by ChuanqiXu).
[Frontend] [Coroutines] Emit error when we found incompatible allocation
Mon, May 16, 7:38 PM · Restricted Project, Restricted Project
ChuanqiXu closed D125517: [Frontend] [Coroutines] Emit error when we found incompatible allocation function in promise_type.
Mon, May 16, 7:37 PM · Restricted Project, Restricted Project

Sun, May 15

ChuanqiXu added a reviewer for D125517: [Frontend] [Coroutines] Emit error when we found incompatible allocation function in promise_type: erichkeane.
Sun, May 15, 7:26 PM · Restricted Project, Restricted Project
ChuanqiXu added inline comments to D125517: [Frontend] [Coroutines] Emit error when we found incompatible allocation function in promise_type.
Sun, May 15, 7:26 PM · Restricted Project, Restricted Project
ChuanqiXu updated the diff for D125517: [Frontend] [Coroutines] Emit error when we found incompatible allocation function in promise_type.

Address comments.

Sun, May 15, 7:25 PM · Restricted Project, Restricted Project
ChuanqiXu committed rG3bef90dff64f: [Diagnostic] Warn if the size argument of memset is character literal (authored by ChuanqiXu).
[Diagnostic] Warn if the size argument of memset is character literal
Sun, May 15, 7:07 PM · Restricted Project, Restricted Project
ChuanqiXu closed D125521: [Diagnostic] Warn if the size argument of memset is character literal zero.
Sun, May 15, 7:07 PM · Restricted Project, Restricted Project

Fri, May 13

ChuanqiXu updated the diff for D125517: [Frontend] [Coroutines] Emit error when we found incompatible allocation function in promise_type.

Remove invalid character

Fri, May 13, 2:39 AM · Restricted Project, Restricted Project

Thu, May 12

ChuanqiXu requested review of D125521: [Diagnostic] Warn if the size argument of memset is character literal zero.
Thu, May 12, 11:02 PM · Restricted Project, Restricted Project
ChuanqiXu added inline comments to D125517: [Frontend] [Coroutines] Emit error when we found incompatible allocation function in promise_type.
Thu, May 12, 8:42 PM · Restricted Project, Restricted Project
ChuanqiXu requested review of D125517: [Frontend] [Coroutines] Emit error when we found incompatible allocation function in promise_type.
Thu, May 12, 8:41 PM · Restricted Project, Restricted Project

Tue, May 10

ChuanqiXu committed rG02d684523486: [NFC] [Coroutines] Remove EnableReuseStorageInFrame option (authored by ChuanqiXu).
[NFC] [Coroutines] Remove EnableReuseStorageInFrame option
Tue, May 10, 2:30 AM · Restricted Project, Restricted Project
ChuanqiXu added reviewers for D125293: [Coroutines] Run EarlyCSE for changed functions in CoroCleanup (3/3): rjmccall, eli.friedman, jyknight, nhaehnle, danilaml, aeubanks.
Tue, May 10, 1:54 AM · Restricted Project, Restricted Project
ChuanqiXu added inline comments to D125292: [Coroutines] Introduce "coro_readnone" operand bundles (2/3).
Tue, May 10, 1:52 AM · Restricted Project, Restricted Project
ChuanqiXu added reviewers for D125292: [Coroutines] Introduce "coro_readnone" operand bundles (2/3): rjmccall, eli.friedman, jyknight, nhaehnle, danilaml.
Tue, May 10, 1:50 AM · Restricted Project, Restricted Project
ChuanqiXu added reviewers for D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3): rjmccall, eli.friedman, jyknight, nhaehnle, danilaml.
Tue, May 10, 1:50 AM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu updated the diff for D125293: [Coroutines] Run EarlyCSE for changed functions in CoroCleanup (3/3).

Run optimization pass in CoroCleanup conditionally.

Tue, May 10, 1:16 AM · Restricted Project, Restricted Project
ChuanqiXu abandoned D124363: [Coroutines] Don't optimize readnone function before we split coroutine (4/5).

https://reviews.llvm.org/D125292

Tue, May 10, 12:28 AM · Restricted Project, Restricted Project
ChuanqiXu abandoned D124364: [Pipelines] Enable EarlyCSE after CoroCleanup to avoid runtime performance losses (5/5).

Now we prefer https://reviews.llvm.org/D125293

Tue, May 10, 12:28 AM · Restricted Project, Restricted Project
ChuanqiXu requested review of D125293: [Coroutines] Run EarlyCSE for changed functions in CoroCleanup (3/3).
Tue, May 10, 12:03 AM · Restricted Project, Restricted Project

Mon, May 9

ChuanqiXu updated the summary of D125292: [Coroutines] Introduce "coro_readnone" operand bundles (2/3).
Mon, May 9, 11:59 PM · Restricted Project, Restricted Project
ChuanqiXu requested review of D125292: [Coroutines] Introduce "coro_readnone" operand bundles (2/3).
Mon, May 9, 11:56 PM · Restricted Project, Restricted Project
ChuanqiXu abandoned D124592: [DRAFT] [Coroutines] Add coro_maychange intrinsic to coroutines only for TLS variables.
Mon, May 9, 11:46 PM · Restricted Project, Restricted Project
ChuanqiXu requested review of D125291: Introduce @llvm.threadlocal.address intrinsic to access TLS variable (1/3).
Mon, May 9, 11:41 PM · Restricted Project, Restricted Project, Restricted Project
ChuanqiXu committed rGbeeed0994eff: [Coroutines] Use PassManager instead of Legacy PassManager internally (authored by ChuanqiXu).
[Coroutines] Use PassManager instead of Legacy PassManager internally
Mon, May 9, 10:16 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D113545: [C++20] [Module] Support reachable definition initially/partially.

@rsmith gentle ping~

Mon, May 9, 7:19 PM · Restricted Project, Restricted Project
ChuanqiXu updated the diff for D113545: [C++20] [Module] Support reachable definition initially/partially.

Code Cleanups

Mon, May 9, 7:18 PM · Restricted Project, Restricted Project
ChuanqiXu committed rGdebd9bf3f019: [NFC] follow up code cleanup after D123837 (authored by ChuanqiXu).
[NFC] follow up code cleanup after D123837
Mon, May 9, 7:03 PM · Restricted Project, Restricted Project
ChuanqiXu closed D124149: [NFC] follow up code cleanup after D123837.
Mon, May 9, 7:03 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D124149: [NFC] follow up code cleanup after D123837.

sorry for being slow, concentrating on module initialisers!

this LGTM (but we can still probably make the visibility code cleaner - perhaps after we get the main functionality installed).

Mon, May 9, 6:46 PM · Restricted Project, Restricted Project

Thu, May 5

ChuanqiXu committed rG2d037873a357: [Coroutines] Don't re-materialize for debug instructions (authored by ChuanqiXu).
[Coroutines] Don't re-materialize for debug instructions
Thu, May 5, 10:53 PM · Restricted Project, Restricted Project
ChuanqiXu committed rG405bf9023561: [NFC] [Pipelines] Hoist CoroCleanup as Module Pass (authored by ChuanqiXu).
[NFC] [Pipelines] Hoist CoroCleanup as Module Pass
Thu, May 5, 12:19 AM · Restricted Project, Restricted Project
ChuanqiXu closed D124362: [NFC] [Pipelines] Hoist CoroCleanup as Module Pass (3/5).
Thu, May 5, 12:19 AM · Restricted Project, Restricted Project
ChuanqiXu committed rG7d40f562e79b: [Pipelines] Hoist CoroCleanup to avoid blocking optimizations (authored by ChuanqiXu).
[Pipelines] Hoist CoroCleanup to avoid blocking optimizations
Thu, May 5, 12:14 AM · Restricted Project, Restricted Project
ChuanqiXu closed D124360: [Pipelines] Hoist CoroCleanup to avoid blocking optimizations.
Thu, May 5, 12:14 AM · Restricted Project, Restricted Project

Wed, May 4

ChuanqiXu retitled D124360: [Pipelines] Hoist CoroCleanup to avoid blocking optimizations from [Pipelines] Hoist CoroCleanup to avoid blocking optimizations (1/5) to [Pipelines] Hoist CoroCleanup to avoid blocking optimizations.
Wed, May 4, 8:05 PM · Restricted Project, Restricted Project
ChuanqiXu abandoned D124361: [Coroutines] Add coro_maychange intrinsic to solve TLS problem (2/5).

Abandon this one since we prefer the proposal from James in https://discourse.llvm.org/t/address-thread-identification-problems-with-coroutine/62015/21

Wed, May 4, 8:05 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D124360: [Pipelines] Hoist CoroCleanup to avoid blocking optimizations.

@aeubanks Would you like to review this one? Although we're discussing the solution in https://discourse.llvm.org/t/address-thread-identification-problems-with-coroutine/62015, I think the change in this revision should be a pure win.

Wed, May 4, 8:03 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D124149: [NFC] follow up code cleanup after D123837.

@iains ping!

Wed, May 4, 7:02 PM · Restricted Project, Restricted Project

Fri, Apr 29

ChuanqiXu added a comment to D119544: Deferred Concept Instantiation Implementation.

Oh, I'm busy with coroutines these days. Thanks for reminding me for this. LGTM to me basically. Only comments for style left.

Fri, Apr 29, 12:37 AM · Restricted Project, Restricted Project

Thu, Apr 28

ChuanqiXu updated the diff for D124361: [Coroutines] Add coro_maychange intrinsic to solve TLS problem (2/5).

Address comments:

  • Don't add filter for OpenMP
  • Add readonly and inaccessiblememonly attribute to llvm.coro.may_change intrinsics.
Thu, Apr 28, 8:20 PM · Restricted Project, Restricted Project

Apr 28 2022

ChuanqiXu added inline comments to D124363: [Coroutines] Don't optimize readnone function before we split coroutine (4/5).
Apr 28 2022, 2:21 AM · Restricted Project, Restricted Project
ChuanqiXu added inline comments to D124592: [DRAFT] [Coroutines] Add coro_maychange intrinsic to coroutines only for TLS variables.
Apr 28 2022, 2:15 AM · Restricted Project, Restricted Project
ChuanqiXu removed a reviewer for D124592: [DRAFT] [Coroutines] Add coro_maychange intrinsic to coroutines only for TLS variables: jdoerfert.
Apr 28 2022, 2:14 AM · Restricted Project, Restricted Project
ChuanqiXu planned changes to D124364: [Pipelines] Enable EarlyCSE after CoroCleanup to avoid runtime performance losses (5/5).

Plan changes due to the previous patch changes its plan too

Apr 28 2022, 2:12 AM · Restricted Project, Restricted Project
ChuanqiXu planned changes to D124363: [Coroutines] Don't optimize readnone function before we split coroutine (4/5).
Apr 28 2022, 2:11 AM · Restricted Project, Restricted Project
ChuanqiXu updated the diff for D124363: [Coroutines] Don't optimize readnone function before we split coroutine (4/5).

Emit coro_readnone in CoroEarly pass instead of frontend.

Apr 28 2022, 1:54 AM · Restricted Project, Restricted Project

Apr 27 2022

ChuanqiXu removed a reviewer for D124592: [DRAFT] [Coroutines] Add coro_maychange intrinsic to coroutines only for TLS variables: jdoerfert.
Apr 27 2022, 8:36 PM · Restricted Project, Restricted Project
ChuanqiXu requested review of D124592: [DRAFT] [Coroutines] Add coro_maychange intrinsic to coroutines only for TLS variables.
Apr 27 2022, 8:36 PM · Restricted Project, Restricted Project
ChuanqiXu updated the diff for D124363: [Coroutines] Don't optimize readnone function before we split coroutine (4/5).

Emit coro_readnone attribute in the frontend.

Apr 27 2022, 4:15 AM · Restricted Project, Restricted Project
ChuanqiXu updated the diff for D124361: [Coroutines] Add coro_maychange intrinsic to solve TLS problem (2/5).

Emit llvm.coro.maychange in the frontend according to the discussion in https://discourse.llvm.org/t/address-thread-identification-problems-with-coroutine/62015

Apr 27 2022, 3:43 AM · Restricted Project, Restricted Project
ChuanqiXu abandoned D124504: Remove --no-opaque-pointers in test/cxx2a-thread-local-constinit.cpp.

How does it block your work? Tests currently still use -no-opaque-pointers to avoid breaking this mode. I think it's generally okay to drop the option, but I'm a bit unclear about the motivation in this case -- do you want to make a change that would be incompatible with typed pointers?

The motivation is that I want to insert an intrinsic for TLS variable. The whole background could be found at: https://discourse.llvm.org/t/address-thread-identification-problems-with-coroutine/62015

The signature of the intrinsic is ptr @intrinsic.name(ptr). And I must add one bitcast if I can't use opaque-pointer. It looks like opaque pointer is enabled by default now: https://github.com/llvm/llvm-project/blob/86c770346c26ce4c9abf5a5b7ab4b5bbfdcf9d78/clang/include/clang/Driver/Options.td#L5567-L5573

So I feel like it is better to remove the --no-opaque-pointers option. I could add a bitcast to workaround if this is not wanted. Maybe the word block is not suitable here.

In that case, I'd recommend inserting the bitcast for now, if it's not too much complication. Also, you might want to consider using an overloaded intrinsic, in which case a bitcast is not necessary (using an overloaded intrinsic would also allow pointers of different address spaces, not sure if that's relevant here).

Apr 27 2022, 12:50 AM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D124504: Remove --no-opaque-pointers in test/cxx2a-thread-local-constinit.cpp.

How does it block your work? Tests currently still use -no-opaque-pointers to avoid breaking this mode. I think it's generally okay to drop the option, but I'm a bit unclear about the motivation in this case -- do you want to make a change that would be incompatible with typed pointers?

Apr 27 2022, 12:31 AM · Restricted Project, Restricted Project
ChuanqiXu requested review of D124504: Remove --no-opaque-pointers in test/cxx2a-thread-local-constinit.cpp.
Apr 27 2022, 12:05 AM · Restricted Project, Restricted Project

Apr 26 2022

ChuanqiXu added a comment to D124149: [NFC] follow up code cleanup after D123837.

@iains gentle ping~

Apr 26 2022, 11:06 PM · Restricted Project, Restricted Project
ChuanqiXu accepted D124114: [FuncSpec] Conditional jump or move depends on uninitialised value(s)..

Now it looks good to me.

Apr 26 2022, 7:33 PM · Restricted Project, Restricted Project
ChuanqiXu accepted D124418: [CHR] Skip region containing llvm.coro.id.

Thanks for the explanation. This fix LGTM.

Apr 26 2022, 7:23 PM · Restricted Project, Restricted Project
ChuanqiXu added a comment to D119544: Deferred Concept Instantiation Implementation.

Alright, a touch more: It looks like the looping through the CurContext at line 6084 finds the wrong thing in evaluating this CXXMethodDecl! The "broken" version has its CurContext as bar in the example above, the "working" versions have foo or foo2<int>. Therefore the 2nd time through the loop, those both end up on the ClassTemplateSpecializationDecl, but the broken one finds the isFileContext version.

So I don't know HOW to fix it, but it seems that the CheckFunctionConstraints probably has to change the CurContext. I suspect the instantiation of the WorkingRequires does something like this correctly.

I'm poking on/off on it today, but if @ChuanqiXu has an idea/help, it would be greatly appreciated.

Apr 26 2022, 1:46 AM · Restricted Project, Restricted Project