Page MenuHomePhabricator

ychen (Yuanfang Chen)
User

Projects

User Details

User Since
Nov 19 2013, 9:02 PM (357 w, 4 d)

Recent Activity

Fri, Sep 25

ychen accepted D87845: [LowerTypeTests][NewPM] Add constructor that uses command line flags.

LGTM

Fri, Sep 25, 4:36 PM · Restricted Project
ychen added a comment to D88342: [Docs][NewPM] Add note about required passes.

Thank you for writing this down.

Fri, Sep 25, 4:32 PM · Restricted Project
ychen added a comment to D88062: [ARM] add .f16 -> .16 token alias.

Is this to ease porting between gcc and clang?

Fri, Sep 25, 8:44 AM · Restricted Project

Thu, Sep 24

ychen added a comment to D88062: [ARM] add .f16 -> .16 token alias.

This patch caused some failures (fullfp16-neg.s etc.) and seems changed the behavior of parsing "vmov.f16 s1,r2" for -fp16 from fail to pass. With this patch and -fp16, "vmov.f16 s1,r2" would be parsed to "vmov.16 s1,r2" which is defined to alias "vmov s1,r2".

Thu, Sep 24, 9:48 PM · Restricted Project

Wed, Sep 23

ychen added a comment to D88107: [NewPM] Add callbacks to PassBuilder to run before/after parsing a pass.

Actually, doing verify-each in StandardInstrumentations seems much nicer. Not sure about how to do debugify-each though, filed https://bugs.llvm.org/show_bug.cgi?id=47633.

Wed, Sep 23, 6:59 PM · Restricted Project
ychen added a comment to D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module.

gentle ping...

Wed, Sep 23, 11:37 AM · Restricted Project

Tue, Sep 22

ychen accepted D88107: [NewPM] Add callbacks to PassBuilder to run before/after parsing a pass.

LGTM. Thanks.

Tue, Sep 22, 6:02 PM · Restricted Project
ychen retitled D88062: [ARM] add .f16 -> .16 token alias from [ARM] add .f16 -> .f16 token alias to [ARM] add .f16 -> .16 token alias.
Tue, Sep 22, 1:21 PM · Restricted Project
ychen added inline comments to D88107: [NewPM] Add callbacks to PassBuilder to run before/after parsing a pass.
Tue, Sep 22, 1:20 PM · Restricted Project
ychen added a comment to D86360: Add new hidden option -print-changed which only reports changes to IR.

@ychen, Why are the regexs not sufficient for testing? I would rather not "check the common sub-string of GCC's and MSVC's output" because it has already been sufficiently demonstrated that this is fragile in the test.

"check the common sub-string of GCC's and MSVC's output" is not fragile because we only support GCC/Clang/MSVC as the host compiler. For PassID, GCC and Clang produce similar if not identical results. Checking PassID for only one compiler is fragile yes.

Tue, Sep 22, 11:06 AM · Restricted Project

Mon, Sep 21

ychen requested review of D88062: [ARM] add .f16 -> .16 token alias.
Mon, Sep 21, 6:30 PM · Restricted Project
ychen accepted D87718: [SimplifyCFG] Override options in default constructor.
Mon, Sep 21, 2:26 PM · Restricted Project

Thu, Sep 17

ychen added a comment to D86360: Add new hidden option -print-changed which only reports changes to IR.

Respond to build/test problems: Remove extra ;, remove call to base dtor,
change tests to have regex for PassID and ModuleID

Thu, Sep 17, 9:58 PM · Restricted Project

Wed, Sep 16

ychen accepted D87713: [NewPM] Port -print-alias-sets to NPM.
Wed, Sep 16, 5:00 PM · Restricted Project
ychen updated the diff for D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module.
  • update test to demonstrate the bug
  • actually the bug could be fixed by reverting D47898
Wed, Sep 16, 4:52 PM · Restricted Project

Tue, Sep 15

ychen accepted D87726: [LowerSwitch][NewPM] Port lowerswitch to NPM.
Tue, Sep 15, 5:49 PM · Restricted Project
ychen added inline comments to D87726: [LowerSwitch][NewPM] Port lowerswitch to NPM.
Tue, Sep 15, 5:22 PM · Restricted Project
ychen added inline comments to D87713: [NewPM] Port -print-alias-sets to NPM.
Tue, Sep 15, 5:15 PM · Restricted Project
ychen accepted D87639: [NewPM] Port strip* passes to NPM.
Tue, Sep 15, 5:03 PM · Restricted Project
ychen accepted D86360: Add new hidden option -print-changed which only reports changes to IR.

One more nit. Thank you!

Tue, Sep 15, 10:45 AM · Restricted Project

Fri, Sep 11

ychen added a reverting change for rG31ecf8d29d81: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline: rGad99e34c59b8: Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen….
Fri, Sep 11, 6:54 PM
ychen added a reverting change for rG3fdaa8602a08: Fix a typo in 31ecf8d29d81d196374a562c6d2bd2c25a62861e: rGad99e34c59b8: Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen….
Fri, Sep 11, 6:54 PM
ychen committed rGad99e34c59b8: Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen… (authored by ychen).
Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen…
Fri, Sep 11, 6:54 PM
ychen added a reverting change for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline: rGad99e34c59b8: Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen….
Fri, Sep 11, 6:54 PM · Restricted Project
ychen committed rG3fdaa8602a08: Fix a typo in 31ecf8d29d81d196374a562c6d2bd2c25a62861e (authored by ychen).
Fix a typo in 31ecf8d29d81d196374a562c6d2bd2c25a62861e
Fri, Sep 11, 4:52 PM
ychen added a comment to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.

@arsenm Thanks for the review!

Fri, Sep 11, 4:43 PM · Restricted Project
ychen committed rG31ecf8d29d81: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline (authored by ychen).
[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline
Fri, Sep 11, 4:42 PM
ychen closed D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Fri, Sep 11, 4:41 PM · Restricted Project
ychen updated the diff for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
  • address feedback
Fri, Sep 11, 3:53 PM · Restricted Project
ychen added a comment to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.

Hello, any more concern I could address to move this forward? Thanks.

Fri, Sep 11, 10:08 AM · Restricted Project

Wed, Sep 9

ychen added a comment to D87045: [LoopNest] Handle loop-nest passes in LoopPassManager.
  • How about using PreservedAnalyses run(Loop &, LoopAnalysisManager &, LoopStandardAnalysisResults &, LPMUpdater &, LoopNest &); for the interface. I think it should work better because it is still a loop pass interface.
  • Add a test case for PassInstrument?
Wed, Sep 9, 12:55 PM · Restricted Project
ychen added inline comments to D86360: Add new hidden option -print-changed which only reports changes to IR.
Wed, Sep 9, 11:05 AM · Restricted Project

Fri, Sep 4

ychen added a comment to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.

ping?

Fri, Sep 4, 10:17 AM · Restricted Project
ychen updated the diff for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
  • Missed a move for returned AsmStreamer.
Fri, Sep 4, 10:16 AM · Restricted Project
ychen added a comment to D87045: [LoopNest] Handle loop-nest passes in LoopPassManager.

Thank you for the patch. I'll take a look over the weekend.

Fri, Sep 4, 10:12 AM · Restricted Project

Thu, Sep 3

ychen accepted D87057: [NewPM][Lint] Port -lint to NewPM.
Thu, Sep 3, 12:00 PM · Restricted Project
ychen added a comment to D86360: Add new hidden option -print-changed which only reports changes to IR.

Sorry to get around to this late. Some comments. If possible, please revert and recommit the patch after we solve these remaining issues.

Thu, Sep 3, 11:53 AM · Restricted Project
ychen added a comment to D87057: [NewPM][Lint] Port -lint to NewPM.

move to Transforms/Utils instead due to layering violation
IR should not depend on Analysis

Thu, Sep 3, 10:56 AM · Restricted Project

Wed, Sep 2

ychen accepted D87057: [NewPM][Lint] Port -lint to NewPM.
Wed, Sep 2, 6:57 PM · Restricted Project
ychen accepted D86979: [docs][NewPM] Add docs for writing NPM passes.

One more comment. Please let another reviewer ack.

Wed, Sep 2, 12:46 PM · Restricted Project
ychen added a comment to D86979: [docs][NewPM] Add docs for writing NPM passes.

Thanks for getting this started.

Wed, Sep 2, 11:14 AM · Restricted Project
ychen added a comment to D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module.

I need to think through this some more, but a couple questions:

Was the clang self host that you tried regular or Thin LTO? If regular please also try ThinLTO.

Do you have a test case showing the failure you got? I think it will be important to add if at all possible.

Wed, Sep 2, 10:58 AM · Restricted Project
ychen added a comment to D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module.

I need to think through this some more, but a couple questions:

Was the clang self host that you tried regular or Thin LTO? If regular please also try ThinLTO.

I was testing the patch with regular LTO. Will try ThinLTO also.

Wed, Sep 2, 10:53 AM · Restricted Project

Tue, Sep 1

ychen added reviewers for D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module: tejohnson, pcc, mehdi_amini.
Tue, Sep 1, 11:28 PM · Restricted Project
ychen retitled D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module from [IRMover] Avoid linking global value that belongs to not-yet-linked module to [IRMover] Avoid materializing global value that belongs to not-yet-linked module.
Tue, Sep 1, 11:17 PM · Restricted Project
ychen retitled D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module from Fix pr42063 to [IRMover] Avoid linking global value that belongs to not-yet-linked module.
Tue, Sep 1, 11:05 PM · Restricted Project
ychen updated the diff for D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module.
  • ready for review
Tue, Sep 1, 11:02 PM · Restricted Project
ychen retitled D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module from fix to Fix pr42063.
Tue, Sep 1, 8:58 PM · Restricted Project
ychen retitled D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module from fix pprbug29096 to fix .
Tue, Sep 1, 8:41 PM · Restricted Project
ychen requested review of D87001: [IRMover] Avoid materializing global value that belongs to not-yet-linked module.
Tue, Sep 1, 8:41 PM · Restricted Project
ychen added a comment to D85676: [NewPM] collapsing nested pass mangers of the same type.

Seems like a good idea. I'm curious if you saw any impact from this change.

Tue, Sep 1, 9:42 AM · Restricted Project, Restricted Project

Fri, Aug 28

ychen added a comment to D85676: [NewPM] collapsing nested pass mangers of the same type.

ping?

Fri, Aug 28, 12:52 PM · Restricted Project, Restricted Project
ychen accepted D86178: [ObjCARCOpt] Port objc-arc to NPM.

It looks like belong to addFunctionSimplificationPasses. How about keeping it Function pass using initialization once?

The reason I made this a module pass instead of a function pass is because it adds function declarations when there is a call to EP.get(). I'm not sure if you're allowed to add function declarations in a function pass. If we were to try to parallelize function passes, that would be bad.
We could split the creation of all the functions in ARCRuntimeEntryPoints into a separate module pass, but that would have to be run right before this function pass and wouldn't help with adding it to a FunctionPassManager.

Fri, Aug 28, 12:51 PM · Restricted Project
ychen added inline comments to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Fri, Aug 28, 12:36 PM · Restricted Project

Aug 28 2020

ychen updated the diff for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
  • address feedback
Aug 28 2020, 12:35 PM · Restricted Project

Aug 27 2020

ychen added a comment to D86178: [ObjCARCOpt] Port objc-arc to NPM.

It looks like belong to addFunctionSimplificationPasses. How about keeping it Function pass using initialization once?

Aug 27 2020, 8:36 PM · Restricted Project
ychen accepted D86663: [test][Inliner] Make always-inline.ll work with NPM.
Aug 27 2020, 9:55 AM · Restricted Project

Aug 24 2020

ychen added a comment to D86360: Add new hidden option -print-changed which only reports changes to IR.

The paper link is not accessible. Could you please make it available somewhere else?

Aug 24 2020, 10:15 AM · Restricted Project
ychen added a comment to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.

Gentle ping?

Aug 24 2020, 9:26 AM · Restricted Project

Aug 21 2020

ychen updated the summary of D83613: [NewPM][CodeGen][X86] Add NPM pipeline builder.
Aug 21 2020, 3:25 PM · Restricted Project
ychen added a comment to D86005: [NewPM][LoopFullUnroll] Make LoopFullUnrollPass required.

Assuming that LoopFullUnrollPass is always required to run on anything with llvm.loop.unroll.full, it doesn't make sense to make this part of the optnone pass instrumentation since we'd have to add the check to all the pass instrumentations, not just optnone. e.g. opt-bisect should never skip the pass either.

If llvm.loop.unroll.full is strong enough that it should override all existing and future pass skipping callbacks' decision, we could either just add it to all the relevant callbacks (probably adding some utility functions) or we just put it in PassInstrumentation::runBeforePass. I think it is more important to adhere to the separation of concerns and let pass do transformation while let PassInstrumentation handles all pass skipping. Another reason (not that it matters here) for PassInstrumentation to handle pass skipping is that it could maintain pipeline execution state while pass itself could not. i.e. you could say the third run of foo pass should be skipped.

Aug 21 2020, 3:07 PM · Restricted Project

Aug 20 2020

ychen added inline comments to D86167: [opt][NewPM] Add basic-aa in legacy PM compatibility mode.
Aug 20 2020, 11:06 AM · Restricted Project

Aug 19 2020

ychen added a comment to D86167: [opt][NewPM] Add basic-aa in legacy PM compatibility mode.

Please let @asbirlea acknowledge this also.

Aug 19 2020, 5:42 PM · Restricted Project
ychen accepted D86167: [opt][NewPM] Add basic-aa in legacy PM compatibility mode.
Aug 19 2020, 5:41 PM · Restricted Project
ychen added inline comments to D86167: [opt][NewPM] Add basic-aa in legacy PM compatibility mode.
Aug 19 2020, 5:11 PM · Restricted Project
ychen added a comment to D86167: [opt][NewPM] Add basic-aa in legacy PM compatibility mode.

This decreases the number of check-llvm failures under NPM from 913 to 752.

This is great!

Aug 19 2020, 10:40 AM · Restricted Project

Aug 18 2020

ychen updated the diff for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
  • address feedback
Aug 18 2020, 4:39 PM · Restricted Project
ychen added inline comments to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Aug 18 2020, 3:35 PM · Restricted Project
ychen added a comment to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.

gentle ping?

Aug 18 2020, 11:43 AM · Restricted Project

Aug 17 2020

ychen accepted D86124: [NewPM] Pin various tests under Other/ to legacy PM.

LGTM

Aug 17 2020, 5:55 PM · Restricted Project
ychen added a comment to D86005: [NewPM][LoopFullUnroll] Make LoopFullUnrollPass required.

This is to say optnone does not work for these 3 passes all the time. Could we do this in the optnone callback by checking the metadata of the branch inst in latch block? That is precisely what we meant here.

Do you mean don't have the optnone pass instrumentation say that the pass should be skipped if it sees the proper metadata?

Aug 17 2020, 5:48 PM · Restricted Project
ychen added a comment to D86005: [NewPM][LoopFullUnroll] Make LoopFullUnrollPass required.

This is to say optnone does not work for these 3 passes all the time. Could we do this in the optnone callback by checking the metadata of the branch inst in latch block? That is precisely what we meant here.

Aug 17 2020, 11:09 AM · Restricted Project

Aug 14 2020

ychen accepted D86008: [test] Fix aggregate-assign-call.c in preparation for -enable-npm-optnone.

LGTM.

Aug 14 2020, 5:32 PM · Restricted Project

Aug 13 2020

ychen added inline comments to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Aug 13 2020, 5:19 PM · Restricted Project
ychen updated the diff for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
  • address feedback
Aug 13 2020, 5:19 PM · Restricted Project
ychen committed rGa5ed20b54978: [NewPM][CodeGen] Add machine code verification callback (authored by ychen).
[NewPM][CodeGen] Add machine code verification callback
Aug 13 2020, 4:13 PM
ychen closed D85916: [NewPM][CodeGen] Add machine code verification callback.
Aug 13 2020, 4:13 PM · Restricted Project
ychen added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

I have trouble finding the definition of LoopNestAnalysis::run.

The reason is that this code is not an analysis pass (it was at the start of code review but ppl felt that it would be better to make it a utility rather than an analysis proper).

Aug 13 2020, 2:30 PM · Restricted Project
ychen updated the diff for D85916: [NewPM][CodeGen] Add machine code verification callback.
  • fix typo
Aug 13 2020, 12:51 PM · Restricted Project
ychen added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

I have trouble finding the definition of LoopNestAnalysis::run.

Aug 13 2020, 11:07 AM · Restricted Project
ychen added a reviewer for D85916: [NewPM][CodeGen] Add machine code verification callback: aeubanks.
Aug 13 2020, 11:02 AM · Restricted Project
ychen requested review of D85916: [NewPM][CodeGen] Add machine code verification callback.
Aug 13 2020, 10:20 AM · Restricted Project

Aug 11 2020

ychen added inline comments to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Aug 11 2020, 6:17 PM · Restricted Project
ychen added inline comments to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Aug 11 2020, 6:00 PM · Restricted Project
ychen added a comment to D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.

Hi, @arsenm @craig.topper, I'm not sure what additional reviewers I should add. Any suggestions?

Aug 11 2020, 5:52 PM · Restricted Project
ychen added reviewers for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline: arsenm, craig.topper.
Aug 11 2020, 5:50 PM · Restricted Project
ychen updated the summary of D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Aug 11 2020, 5:47 PM · Restricted Project
ychen updated the summary of D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
Aug 11 2020, 5:46 PM · Restricted Project
ychen updated the diff for D83608: [NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline.
  • rebase. ready for review
Aug 11 2020, 4:20 PM · Restricted Project
ychen abandoned D85698: [ADT] Add an version of llvm::join that takes a callable for non-string iterable.

Yeah, that should work. Thanks.

Aug 11 2020, 2:56 PM · Restricted Project
ychen committed rG39617aaed95a: NFC. Constify MachineVerifier::verify parameter (authored by ychen).
NFC. Constify MachineVerifier::verify parameter
Aug 11 2020, 12:00 PM
ychen added a comment to D84886: Create LoopNestPass.

Hello, sorry for the late reply. I have some high-level questions

  • What are existing and future loop passes/analyses that could benefit from using LoopNestPass?
  • I'd feel more comfortable if existing loop pass/analysis managers could be extended to handle LoopNestPass, rather than have separate full-fledged managers. Implementation aside, this models the idea that loopnest is just a special kind of loop, not a fundamental different IR unit. Have you thought about the alternative design of adding new adaptors or extending existing loop managers to run/query/invalidate loopnest passes?
  • I'm not sure how common loopnest analyses are or will be? What's your opinion?
Aug 11 2020, 11:10 AM · Restricted Project, Restricted Project

Aug 10 2020

ychen added a comment to D85698: [ADT] Add an version of llvm::join that takes a callable for non-string iterable.

Perhaps this should be built by composition with some kind of range transformer (not sure if we have one of those already - maybe we do?), rather than having explicit support in join?

Aug 10 2020, 7:23 PM · Restricted Project
ychen updated the diff for D85698: [ADT] Add an version of llvm::join that takes a callable for non-string iterable.
  • update test
Aug 10 2020, 6:29 PM · Restricted Project
ychen added reviewers for D85698: [ADT] Add an version of llvm::join that takes a callable for non-string iterable: zturner, dblaikie.
Aug 10 2020, 6:25 PM · Restricted Project
ychen committed rGd04f3e028d32: [CodeGen] Make MMI immutable NPM pass (authored by ychen).
[CodeGen] Make MMI immutable NPM pass
Aug 10 2020, 6:00 PM
ychen requested review of D85698: [ADT] Add an version of llvm::join that takes a callable for non-string iterable.
Aug 10 2020, 5:11 PM · Restricted Project
ychen requested review of D85676: [NewPM] collapsing nested pass mangers of the same type.
Aug 10 2020, 11:41 AM · Restricted Project, Restricted Project

Aug 7 2020

ychen added a comment to D85457: [NewPM][optnone] Mark various passes as required.

Looks reasonable to me. Please let @asbirlea double-check.

Aug 7 2020, 5:17 PM · Restricted Project, Restricted Project
ychen committed rGf5b5ccf2a687: Reland "Revert "[NewPM][CodeGen] Introduce machine pass and machine pass… (authored by ychen).
Reland "Revert "[NewPM][CodeGen] Introduce machine pass and machine pass…
Aug 7 2020, 4:41 PM