Page MenuHomePhabricator

lxfind (Xun Li)
User

Projects

User does not belong to any projects.

User Details

User Since
May 3 2020, 4:37 PM (37 w, 4 d)

Recent Activity

Yesterday

lxfind committed rGbd3ca6666d14: [Inlining] Delete redundant optnone/alwaysinline check (authored by lxfind).
[Inlining] Delete redundant optnone/alwaysinline check
Thu, Jan 21, 6:38 PM
lxfind closed D95186: [Inlining] Delete redundant optnone/alwaysinline check.
Thu, Jan 21, 6:38 PM · Restricted Project
lxfind added a comment to D95186: [Inlining] Delete redundant optnone/alwaysinline check.

The same check is done in InlineCost: https://github.com/llvm/llvm-project/blob/8b0bd54d0ec968df28ccc58bbb537a7b7c074ef2/llvm/lib/Analysis/InlineCost.cpp#L2537-L2552

The check in InlineCost is on Caller, so it's not strictly redundant.

Thu, Jan 21, 5:08 PM · Restricted Project
lxfind requested review of D95186: [Inlining] Delete redundant optnone/alwaysinline check.
Thu, Jan 21, 4:39 PM · Restricted Project

Tue, Jan 19

lxfind added inline comments to D94891: [Coroutine] Remain alignment information when merging frame variables.
Tue, Jan 19, 8:50 AM · Restricted Project

Mon, Jan 18

lxfind committed rG1d04dc52dd24: [Coroutine] Do not CoroElide if there are musttail calls (authored by lxfind).
[Coroutine] Do not CoroElide if there are musttail calls
Mon, Jan 18, 9:06 AM
lxfind closed D94834: [Coroutine] Do not CoroElide if there are musttail calls.
Mon, Jan 18, 9:06 AM · Restricted Project
lxfind added a comment to D94834: [Coroutine] Do not CoroElide if there are musttail calls.

I am a little unclear about this problem. From my point of view, it seems like that there is a Coroutine C elided in a normal function F. Then in the Coroutine Body of C, it would try to switch to itself by symmetric transfer. However, the Coroutine frame of C now is a stack variable. Then the tail call would pass the address of the stack variable whose lifetime has ended, so here is the corruption. Did I understand the situation?

Mon, Jan 18, 9:03 AM · Restricted Project

Fri, Jan 15

lxfind updated the diff for D94834: [Coroutine] Do not CoroElide if there are musttail calls.

address comments

Fri, Jan 15, 5:56 PM · Restricted Project
lxfind added inline comments to D94834: [Coroutine] Do not CoroElide if there are musttail calls.
Fri, Jan 15, 5:48 PM · Restricted Project
lxfind added reviewers for D94834: [Coroutine] Do not CoroElide if there are musttail calls: junparser, ChuanqiXu.
Fri, Jan 15, 3:09 PM · Restricted Project
lxfind requested review of D94834: [Coroutine] Do not CoroElide if there are musttail calls.
Fri, Jan 15, 3:08 PM · Restricted Project

Wed, Jan 13

lxfind committed rGff5e89642557: Fix unused variable in CoroFrame.cpp when building Release with GCC 10 (authored by dpaoliello).
Fix unused variable in CoroFrame.cpp when building Release with GCC 10
Wed, Jan 13, 10:54 PM
lxfind closed D94456: Fix unused variable in CoroFrame.cpp when building Release with GCC 10.
Wed, Jan 13, 10:54 PM · Restricted Project

Tue, Jan 12

lxfind accepted D94137: [coroutine] update promise object's final layout index.

Thank you!

Tue, Jan 12, 5:32 PM · Restricted Project
lxfind added inline comments to D94137: [coroutine] update promise object's final layout index.
Tue, Jan 12, 4:08 PM · Restricted Project
lxfind added inline comments to D94137: [coroutine] update promise object's final layout index.
Tue, Jan 12, 3:53 PM · Restricted Project
lxfind added a comment to D94137: [coroutine] update promise object's final layout index.

Thanks. I agree your fix is correct.
Some small suggestions commented

Tue, Jan 12, 2:07 PM · Restricted Project
lxfind added inline comments to D94137: [coroutine] update promise object's final layout index.
Tue, Jan 12, 12:17 PM · Restricted Project
lxfind added inline comments to D94137: [coroutine] update promise object's final layout index.
Tue, Jan 12, 10:26 AM · Restricted Project

Mon, Jan 11

lxfind accepted D94456: Fix unused variable in CoroFrame.cpp when building Release with GCC 10.
Mon, Jan 11, 2:57 PM · Restricted Project

Mon, Jan 4

lxfind committed rG3e2b42489f89: Remove RefSCC::handleTrivialEdgeInsertion (authored by lxfind).
Remove RefSCC::handleTrivialEdgeInsertion
Mon, Jan 4, 8:21 PM
lxfind closed D94055: Remove RefSCC::handleTrivialEdgeInsertion.
Mon, Jan 4, 8:21 PM · Restricted Project
lxfind requested review of D94055: Remove RefSCC::handleTrivialEdgeInsertion.
Mon, Jan 4, 7:29 PM · Restricted Project

Wed, Dec 30

lxfind added inline comments to D93828: [CGSCC][Coroutine][NewPM] Properly support function splitting/outlining.
Wed, Dec 30, 8:43 AM · Restricted Project

Tue, Dec 29

lxfind added a comment to D93828: [CGSCC][Coroutine][NewPM] Properly support function splitting/outlining.

Thank you for working on this! LGTM. I will let others who are more familiar with SCC to accept it.
A few nits commented inline.

Tue, Dec 29, 10:11 PM · Restricted Project
lxfind added inline comments to D93828: [CGSCC][Coroutine][NewPM] Properly support function splitting/outlining.
Tue, Dec 29, 12:02 PM · Restricted Project

Dec 18 2020

lxfind committed rG4652718ee38c: Cleanup coro-inline.ll (authored by lxfind).
Cleanup coro-inline.ll
Dec 18 2020, 8:05 AM
lxfind closed D93342: Cleanup coro-inline.ll.
Dec 18 2020, 8:05 AM · Restricted Project

Dec 17 2020

lxfind updated the diff for D93342: Cleanup coro-inline.ll.

rebase

Dec 17 2020, 8:45 AM · Restricted Project

Dec 16 2020

lxfind updated the diff for D93342: Cleanup coro-inline.ll.

Update test. A few things: 1) we don't need and shouldn't add --coro-early. Both functions are already marked with coroutine.presplit=1, ready for CoroSplit. coro-early will actually mess it up. 2) It turns out we need the meta data and dbg info since SampleProfileLoader depends on it. 3) We don't need all the attributes. Removed the unused ones.

Dec 16 2020, 5:44 PM · Restricted Project
lxfind added inline comments to D93342: Cleanup coro-inline.ll.
Dec 16 2020, 5:34 PM · Restricted Project

Dec 15 2020

lxfind requested review of D93342: Cleanup coro-inline.ll.
Dec 15 2020, 2:45 PM · Restricted Project

Dec 10 2020

lxfind added a comment to D92662: [Clang][Coroutine] Drop const attribute on pthread_self when coroutine is enabled.

I don't think we should change the meaning of __attribute__((const)) to exclude depending on thread-id.

However, if we do want to do so, and call the existing uses of __attribute__((const)) in glibc invalid, we need to special case many more functions. Looking through it a little, I see __errno_location, __rpc_thread_variables, __ctype_b_loc, __ctype_tolower_loc, __ctype_toupper_loc, __libc_tsd_address...and I gave up looking after that.

Dec 10 2020, 4:09 PM · Restricted Project
lxfind added inline comments to D92706: [coroutine] should disable inline before calling coro split.
Dec 10 2020, 8:29 AM · Restricted Project

Dec 9 2020

lxfind added a comment to D92662: [Clang][Coroutine] Drop const attribute on pthread_self when coroutine is enabled.

If the attribute is not suitable, glibc should drop it. The compiler can add readnone/readonly if appropriate.

Dec 9 2020, 4:28 PM · Restricted Project
lxfind added reviewers for D92662: [Clang][Coroutine] Drop const attribute on pthread_self when coroutine is enabled: jdoerfert, jyknight, joerg, nhaehnle, rnk.
Dec 9 2020, 1:01 PM · Restricted Project
lxfind updated the diff for D92662: [Clang][Coroutine] Drop const attribute on pthread_self when coroutine is enabled.

Fix test

Dec 9 2020, 11:50 AM · Restricted Project
lxfind added reviewers for D92661: [RFC] Fix TLS and Coroutine: jyknight, joerg, nhaehnle, rnk.
Dec 9 2020, 10:20 AM · Restricted Project, Restricted Project
lxfind updated the diff for D92661: [RFC] Fix TLS and Coroutine.

Fix all failing tests

Dec 9 2020, 10:18 AM · Restricted Project, Restricted Project

Dec 8 2020

lxfind added inline comments to D92806: Single function compilation mode..
Dec 8 2020, 1:50 PM · Restricted Project, Restricted Project
lxfind committed rG31e60b913359: [coroutine] should disable inline before calling coro split (authored by lxfind).
[coroutine] should disable inline before calling coro split
Dec 8 2020, 8:55 AM
lxfind closed D92706: [coroutine] should disable inline before calling coro split.
Dec 8 2020, 8:55 AM · Restricted Project
lxfind added inline comments to D92661: [RFC] Fix TLS and Coroutine.
Dec 8 2020, 8:27 AM · Restricted Project, Restricted Project

Dec 7 2020

lxfind updated the diff for D92706: [coroutine] should disable inline before calling coro split.

Add missing file. Rename isCoroutine to isPresplitCoroutine

Dec 7 2020, 8:33 AM · Restricted Project
lxfind added inline comments to D92706: [coroutine] should disable inline before calling coro split.
Dec 7 2020, 8:18 AM · Restricted Project

Dec 4 2020

lxfind requested review of D92706: [coroutine] should disable inline before calling coro split.
Dec 4 2020, 4:12 PM · Restricted Project
lxfind added inline comments to D92661: [RFC] Fix TLS and Coroutine.
Dec 4 2020, 3:01 PM · Restricted Project, Restricted Project
lxfind added inline comments to D92661: [RFC] Fix TLS and Coroutine.
Dec 4 2020, 10:08 AM · Restricted Project, Restricted Project
lxfind requested review of D92662: [Clang][Coroutine] Drop const attribute on pthread_self when coroutine is enabled.
Dec 4 2020, 8:50 AM · Restricted Project
lxfind requested review of D92661: [RFC] Fix TLS and Coroutine.
Dec 4 2020, 8:47 AM · Restricted Project, Restricted Project

Dec 2 2020

lxfind committed rG80b0f74c8c53: Small improvements to Intrinsic::getName (authored by lxfind).
Small improvements to Intrinsic::getName
Dec 2 2020, 4:49 PM
lxfind closed D92523: Small improvements to Intrinsic::getName.
Dec 2 2020, 4:49 PM · Restricted Project
lxfind added a reviewer for D92523: Small improvements to Intrinsic::getName: pete.
Dec 2 2020, 4:38 PM · Restricted Project
lxfind requested review of D92523: Small improvements to Intrinsic::getName.
Dec 2 2020, 4:35 PM · Restricted Project

Nov 19 2020

lxfind added a comment to D85812: [coroutine] should disable inline before calling coro split.

Hi @dongAxis1944, @junparser, do you still plan to reland this patch?

Nov 19 2020, 3:24 PM · Restricted Project

Nov 18 2020

lxfind added a comment to D86853: [modules] Fix crash in call to `FunctionDecl::setPure()`.

@rsmith, @v.g.vassilev hey I stamped this patch assuming it looks ok. But definitely shout at me if more feedback needs to be addressed. Happy to follow up.

Nov 18 2020, 2:14 PM · Restricted Project
lxfind committed rGc6c8d4a13ebd: [modules] Fix crash in call to `FunctionDecl::setPure()` (authored by andrewjcg).
[modules] Fix crash in call to `FunctionDecl::setPure()`
Nov 18 2020, 11:56 AM
lxfind closed D86853: [modules] Fix crash in call to `FunctionDecl::setPure()`.
Nov 18 2020, 11:56 AM · Restricted Project
lxfind accepted D86853: [modules] Fix crash in call to `FunctionDecl::setPure()`.
Nov 18 2020, 11:43 AM · Restricted Project

Nov 16 2020

lxfind committed rG985c524001d4: [Coroutine] Allocas used by StoreInst does not always escape (authored by lxfind).
[Coroutine] Allocas used by StoreInst does not always escape
Nov 16 2020, 9:15 AM
lxfind closed D91305: [Coroutine] Allocas used by StoreInst does not always escape.
Nov 16 2020, 9:15 AM · Restricted Project
lxfind added a comment to D87798: [NewPM][CGSCC] Handle newly added functions in updateCGAndAnalysisManagerForPass.

Yes I'm aware of the issue and https://reviews.llvm.org/D88714 is an attempt to fix that. I was going to ask exactly what sorts of transformations coroutines does. I'll make a post in llvm-dev.

Nov 16 2020, 9:02 AM · Restricted Project

Nov 14 2020

lxfind added a comment to D91305: [Coroutine] Allocas used by StoreInst does not always escape.

Thanks for the patch!

Nov 14 2020, 8:57 PM · Restricted Project
lxfind added a comment to D87798: [NewPM][CGSCC] Handle newly added functions in updateCGAndAnalysisManagerForPass.

Yes I'm aware of the issue and https://reviews.llvm.org/D88714 is an attempt to fix that. I was going to ask exactly what sorts of transformations coroutines does. I'll make a post in llvm-dev.

Nov 14 2020, 12:58 PM · Restricted Project
lxfind added a comment to D87798: [NewPM][CGSCC] Handle newly added functions in updateCGAndAnalysisManagerForPass.

@aeubanks, I was wondering if you are familiar with this but it seems that the SCC update after CoroSplit couldn't handle the case when there is recursion in the original coroutine, that is, the newly generated functions by CoroSplit will contain cycles (foo calling foo.resume which then calls foo). Do you have suggestions/thoughts on how to fix it?
For example, test like this will fail assertions:

; RUN: opt < %s --enable-new-pm --enable-coroutines -O3 -S
; Function Attrs: argmemonly nounwind readonly
declare token @llvm.coro.id(i32, i8* readnone, i8* nocapture readonly, i8*) #0
Nov 14 2020, 8:59 AM · Restricted Project

Nov 13 2020

lxfind added a comment to D91305: [Coroutine] Allocas used by StoreInst does not always escape.

Do we really need handle this in non-optimized mode? @bruno I'm afraid that this patch may affect the debugging quality fixed in D90772, @lxfind, have you ever checked this?

Nov 13 2020, 9:44 PM · Restricted Project
lxfind added inline comments to D91098: [coro] Async coroutines: Allow more than 3 arguments in the dispatch function.
Nov 13 2020, 1:26 PM · Restricted Project

Nov 12 2020

lxfind added a comment to D91305: [Coroutine] Allocas used by StoreInst does not always escape.

I'm not sure whether we should fix this case by case. Maybe we should use memoryssa to handle this.

Nov 12 2020, 8:55 PM · Restricted Project

Nov 11 2020

lxfind added a reverting change for rG8bc7b9278e55: [Coroutine] Allocas used by StoreInst does not always escape: rG94a45a809872: Revert "[Coroutine] Allocas used by StoreInst does not always escape".
Nov 11 2020, 9:10 PM
lxfind committed rG94a45a809872: Revert "[Coroutine] Allocas used by StoreInst does not always escape" (authored by lxfind).
Revert "[Coroutine] Allocas used by StoreInst does not always escape"
Nov 11 2020, 9:10 PM
lxfind added a reverting change for D91305: [Coroutine] Allocas used by StoreInst does not always escape: rG94a45a809872: Revert "[Coroutine] Allocas used by StoreInst does not always escape".
Nov 11 2020, 9:10 PM · Restricted Project
lxfind reopened D91305: [Coroutine] Allocas used by StoreInst does not always escape.

Landed by accident. Reverted and reopening for review.

Nov 11 2020, 9:10 PM · Restricted Project
lxfind committed rG8bc7b9278e55: [Coroutine] Allocas used by StoreInst does not always escape (authored by lxfind).
[Coroutine] Allocas used by StoreInst does not always escape
Nov 11 2020, 8:54 PM
lxfind closed D91305: [Coroutine] Allocas used by StoreInst does not always escape.
Nov 11 2020, 8:54 PM · Restricted Project
lxfind accepted D91243: [NFC][Coroutines] Remove unused `IsImplicit` argument in maybeTailCall.

Thank you!

Nov 11 2020, 8:24 PM · Restricted Project
lxfind added a comment to D90752: [OpenMP][OMPT] Update the omp-tools header file to reflect 5.1 changes.

Are all uses of on_ompt_callback_master expected to be replaced?
I see this is still using it:
https://github.com/llvm/llvm-project/blob/master/openmp/tools/multiplex/tests/custom_data_storage/first-tool.h#L126

Nov 11 2020, 4:40 PM · Restricted Project
lxfind added reviewers for D91305: [Coroutine] Allocas used by StoreInst does not always escape: ChuanqiXu, junparser, bruno, wenlei.
Nov 11 2020, 3:51 PM · Restricted Project
lxfind requested review of D91305: [Coroutine] Allocas used by StoreInst does not always escape.
Nov 11 2020, 3:50 PM · Restricted Project
lxfind added a comment to D91243: [NFC][Coroutines] Remove unused `IsImplicit` argument in maybeTailCall.

Good catch. Thanks for the fix! The IsImplicit argument for buildCoawaitCalls function can also be removed now.

Nov 11 2020, 10:11 AM · Restricted Project

Nov 10 2020

lxfind committed rGb8a8ef32762b: [SafeStack] Make sure SafeStack does not break musttail call contract (authored by lxfind).
[SafeStack] Make sure SafeStack does not break musttail call contract
Nov 10 2020, 8:46 PM
lxfind closed D90702: [SafeStack] Make sure SafeStack does not break musttail call contract.
Nov 10 2020, 8:46 PM · Restricted Project
lxfind added inline comments to D91018: [ELF] Make InputSection smaller.
Nov 10 2020, 8:25 PM · Restricted Project
lxfind added inline comments to D91018: [ELF] Make InputSection smaller.
Nov 10 2020, 5:21 PM · Restricted Project
lxfind added inline comments to D88059: [Coroutine] Split PHI Nodes in `cleanuppad` blocks in a way that obeys EH pad rules.
Nov 10 2020, 2:22 PM · Restricted Project
lxfind committed rG19f077092343: [Coroutine][Sema] Cleanup temporaries as early as possible (authored by lxfind).
[Coroutine][Sema] Cleanup temporaries as early as possible
Nov 10 2020, 1:28 PM
lxfind closed D90990: [Coroutine][Sema] Cleanup temporaries as early as possible.
Nov 10 2020, 1:27 PM · Restricted Project
lxfind added a comment to D90702: [SafeStack] Make sure SafeStack does not break musttail call contract.

ping :)

Nov 10 2020, 10:01 AM · Restricted Project
lxfind planned changes to D89711: [Coroutine] Prevent value reusing across coroutine suspensions in EarlyCSE and GVN.
Nov 10 2020, 10:00 AM · Restricted Project
lxfind updated the diff for D90990: [Coroutine][Sema] Cleanup temporaries as early as possible.

Add AST test

Nov 10 2020, 9:23 AM · Restricted Project
lxfind added inline comments to D90990: [Coroutine][Sema] Cleanup temporaries as early as possible.
Nov 10 2020, 8:31 AM · Restricted Project
lxfind added inline comments to D90990: [Coroutine][Sema] Cleanup temporaries as early as possible.
Nov 10 2020, 8:21 AM · Restricted Project

Nov 9 2020

lxfind added a comment to D90612: Start of an llvm.coro.async implementation.

Curious, is the plan to eventually replace .recon lowering with .async lowering? If so, would you mind explain in a bit more detail what's the advantage of .async over .retcon lowering and what motivates this new lowering? Thanks!

Nov 9 2020, 5:35 PM · Restricted Project
lxfind accepted D90772: [Coroutines] Add missing llvm.dbg.declare's to cover more allocas.

LGTM. Thanks!

Nov 9 2020, 5:25 PM · Restricted Project
lxfind committed rGc2cb093d9b96: [Coroutine] Move all used local allocas to the .resume function (authored by lxfind).
[Coroutine] Move all used local allocas to the .resume function
Nov 9 2020, 5:25 PM
lxfind closed D90977: [Coroutine] Move all used local allocas to the .resume function.
Nov 9 2020, 5:25 PM · Restricted Project
lxfind added a comment to D90977: [Coroutine] Move all used local allocas to the .resume function.

I can confirm that this fixes the crash we've been seeing - thank you!

Nov 9 2020, 1:07 PM · Restricted Project
lxfind added a comment to D90772: [Coroutines] Add missing llvm.dbg.declare's to cover more allocas.

Could you add a test (or update existing tests) to demonstrate that the issue is fixed?

The testcase was updated as part of the last diff update, anything specific you are looking for?

Nov 9 2020, 11:46 AM · Restricted Project

Nov 6 2020

lxfind added a comment to D90772: [Coroutines] Add missing llvm.dbg.declare's to cover more allocas.

Could you add a test (or update existing tests) to demonstrate that the issue is fixed?

Nov 6 2020, 6:41 PM · Restricted Project
lxfind updated the summary of D90990: [Coroutine][Sema] Cleanup temporaries as early as possible.
Nov 6 2020, 4:32 PM · Restricted Project