Page MenuHomePhabricator

jyu2 (Jennifer Yu)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 2 2016, 10:10 AM (136 w, 5 d)

Recent Activity

Jun 3 2019

jyu2 closed D56571: [RFC prototype] Implementation of asm-goto support in clang.

jyu2 committed rGb8fee677bf8e: Re-check in clang support gun asm goto after fixing tests. (authored by jyu2).

Jun 3 2019, 9:01 AM
jyu2 committed rGb8fee677bf8e: Re-check in clang support gun asm goto after fixing tests. (authored by jyu2).
Re-check in clang support gun asm goto after fixing tests.
Jun 3 2019, 9:00 AM
jyu2 committed rL362410: Re-check in clang support gun asm goto after fixing tests..
Re-check in clang support gun asm goto after fixing tests.
Jun 3 2019, 8:59 AM

May 30 2019

jyu2 added a comment to D56571: [RFC prototype] Implementation of asm-goto support in clang.

jyu2 committed rG954ec09aed4f: clang support gnu asm goto

May 30 2019, 1:14 PM

May 29 2019

jyu2 committed rC362045: clang support gnu asm goto..
clang support gnu asm goto.
May 29 2019, 6:04 PM
jyu2 committed rG954ec09aed4f: clang support gnu asm goto. Syntax: asm [volatile] goto ( AssemblerTemplate… (authored by jyu2).
clang support gnu asm goto. Syntax: asm [volatile] goto ( AssemblerTemplate…
May 29 2019, 6:04 PM
jyu2 committed rL362045: clang support gnu asm goto..
clang support gnu asm goto.
May 29 2019, 6:03 PM

May 16 2019

xianjun awarded D56571: [RFC prototype] Implementation of asm-goto support in clang a Like token.
May 16 2019, 5:49 AM

Apr 25 2019

jyu2 closed D60912: MS ABI: handle inline static data member and inline variable as template static data member.

committed rGc19f4f806972: Fix bug 37903:MS ABI: handle inline static data member and inline variable as… (authored by jyu2).

Apr 25 2019, 10:50 AM · Restricted Project
jyu2 added inline comments to D60912: MS ABI: handle inline static data member and inline variable as template static data member.
Apr 25 2019, 10:47 AM · Restricted Project
jyu2 committed rGc19f4f806972: Fix bug 37903:MS ABI: handle inline static data member and inline variable as… (authored by jyu2).
Fix bug 37903:MS ABI: handle inline static data member and inline variable as…
Apr 25 2019, 10:44 AM
jyu2 committed rL359212: Fix bug 37903:MS ABI: handle inline static data member and inline variable as….
Fix bug 37903:MS ABI: handle inline static data member and inline variable as…
Apr 25 2019, 10:44 AM
jyu2 committed rC359212: Fix bug 37903:MS ABI: handle inline static data member and inline variable as….
Fix bug 37903:MS ABI: handle inline static data member and inline variable as…
Apr 25 2019, 10:44 AM

Apr 24 2019

jyu2 added a comment to D56571: [RFC prototype] Implementation of asm-goto support in clang.

@compudj email me the preprocessed output of basic_percpu_ops_test.c and I'll take a look. (Should be able to find my email via git log).

Apr 24 2019, 5:11 PM

Apr 23 2019

jyu2 updated the diff for D60912: MS ABI: handle inline static data member and inline variable as template static data member.

Hi Reid,
Thanks for your review and catch what I were missing for inline variable part(only inline static data member were fix in previous patch).
As you suggested, instead using GVA_DiscardableODR to put inline variable's initialization function or inline static member's initialization functions into to COMDAT group with global being initialized.

Apr 23 2019, 3:53 PM · Restricted Project

Apr 22 2019

jyu2 added a comment to D60930: [codeview] Fix symbol names for dynamic initializers and atexit stubs.

Looks good to me. We are basically de-mangled name for those E initialize global’s function and F destroy global's function.

Apr 22 2019, 11:15 AM · Restricted Project

Apr 19 2019

jyu2 added a comment to D60912: MS ABI: handle inline static data member and inline variable as template static data member.
In D60912#1472987, @rnk wrote:

inline static int aoo = foo(); // C++17 inline variable, thus also a definition

This is a static inline global variable, so it technically creates two different globals, so calling foo twice is intended behavior. I think we really want to look at the GVA linkage instead of trying to list all the reasons why something might have weak linkage. Take a look at shouldBeInCOMDAT in CodeGenModule.cpp, I think it has the logic we want.

Apr 19 2019, 1:54 PM · Restricted Project
jyu2 added a comment to D60912: MS ABI: handle inline static data member and inline variable as template static data member.
In D60912#1472983, @rnk wrote:

Thanks, I think there's another case to handle, though.

Apr 19 2019, 1:19 PM · Restricted Project
jyu2 created D60912: MS ABI: handle inline static data member and inline variable as template static data member.
Apr 19 2019, 12:00 PM · Restricted Project

Apr 3 2019

jyu2 closed D58160: MS ABI: adding template static member in the linker directive section to make sure init function can be called before main..

Closed by commit rG0b28b8b09be7: Bug-40323: MS ABI adding template static member in the linker directive section… (authored by jyu2).

Apr 3 2019, 10:49 AM · Restricted Project
jyu2 committed rG0b28b8b09be7: Bug-40323: MS ABI adding template static member in the linker directive section… (authored by jyu2).
Bug-40323: MS ABI adding template static member in the linker directive section…
Apr 3 2019, 10:21 AM
jyu2 committed rL357610: Bug-40323: MS ABI adding template static member in the linker directive section….
Bug-40323: MS ABI adding template static member in the linker directive section…
Apr 3 2019, 10:20 AM
jyu2 committed rC357610: Bug-40323: MS ABI adding template static member in the linker directive section….
Bug-40323: MS ABI adding template static member in the linker directive section…
Apr 3 2019, 10:20 AM

Mar 20 2019

jyu2 committed rG506d74c8e39a: Remove extra white spaces (authored by jyu2).
Remove extra white spaces
Mar 20 2019, 4:05 PM
jyu2 committed rC356628: Remove extra white spaces.
Remove extra white spaces
Mar 20 2019, 4:04 PM
jyu2 committed rL356628: Remove extra white spaces.
Remove extra white spaces
Mar 20 2019, 4:04 PM

Mar 18 2019

jyu2 added a comment to D58160: MS ABI: adding template static member in the linker directive section to make sure init function can be called before main..
In D58160#1433458, @rnk wrote:

lgtm

Mar 18 2019, 9:04 PM · Restricted Project
jyu2 retitled D58160: MS ABI: adding template static member in the linker directive section to make sure init function can be called before main. from Fix runtime problem from //bugs.llvm.org/show_bug.cgi?id=40323 to MS ABI: adding template static member in the linker directive section to make sure init function can be called before main..
Mar 18 2019, 10:04 AM · Restricted Project

Mar 4 2019

jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Rebased

Mar 4 2019, 2:21 PM

Feb 22 2019

jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Rebase

Feb 22 2019, 6:33 PM

Feb 15 2019

jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 15 2019, 7:27 PM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Review comments addressed.

Feb 15 2019, 7:27 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 15 2019, 10:28 AM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Review comment addressed

Feb 15 2019, 10:28 AM

Feb 12 2019

jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Cleanup CFG code, remove obj-lifetime code when build CFE for asm-goto.

Feb 12 2019, 6:10 PM
jyu2 created D58160: MS ABI: adding template static member in the linker directive section to make sure init function can be called before main..
Feb 12 2019, 4:57 PM · Restricted Project

Feb 11 2019

jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

I find some ambiguous error for asm-goto out of scope.
Instead call VerifyIndirectOrAsmJumps one time, call that function twice one for indirect-goto one for asm-goto.

Feb 11 2019, 4:03 PM

Feb 8 2019

jyu2 added reviewers for D56571: [RFC prototype] Implementation of asm-goto support in clang: rsmith, efriedma, cfe-commits.
Feb 8 2019, 9:56 PM

Feb 7 2019

jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 7 2019, 9:42 PM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Remove check for %lN
Fix missing successor of asm goto in CFG build.

Feb 7 2019, 9:42 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 7 2019, 9:25 AM

Feb 5 2019

jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

small fix.

Feb 5 2019, 9:43 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 5 2019, 7:46 PM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

More change from review.

Feb 5 2019, 7:43 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 5 2019, 11:35 AM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

1>emit better error for use of output constraints.
2> Add assert for NumLabels and NumOutputs are both larger than 0.

Feb 5 2019, 11:33 AM

Feb 4 2019

jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 4 2019, 6:02 PM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

More review comments addressed.

Feb 4 2019, 6:01 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 4 2019, 2:09 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 4 2019, 11:13 AM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

1> Add code for scope checking
2> Using CastInterator
3> CFG change to remove duplicate Block list

Feb 4 2019, 11:04 AM
jyu2 commandeered D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 4 2019, 10:39 AM

Jan 30 2019

jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Change test for BE IR change.

Jan 30 2019, 12:26 PM

Jan 15 2019

jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Change error message.

Jan 15 2019, 9:57 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 15 2019, 1:16 PM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

I add additional test.

Jan 15 2019, 1:04 PM

Jan 14 2019

jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 14 2019, 7:31 PM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Add code to diagnostic error for use of the "l" modifier that does not point to a label in the label list.

Jan 14 2019, 7:30 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 14 2019, 10:52 AM

Jan 11 2019

jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 11 2019, 6:07 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 11 2019, 5:44 PM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

Couple of change to respond Eli’s comments.

Jan 11 2019, 5:38 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 11 2019, 2:01 PM
jyu2 added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 11 2019, 11:51 AM
jyu2 updated the diff for D56571: [RFC prototype] Implementation of asm-goto support in clang.

1> I add code for CFG.cpp and a test for that, as efriedman request.
2> changes are respond the comments I received

Jan 11 2019, 11:45 AM
jyu2 commandeered D56571: [RFC prototype] Implementation of asm-goto support in clang.
Jan 11 2019, 11:43 AM

Aug 1 2017

jyu2 added a comment to D33537: [clang-tidy] Exception Escape Checker.

Test changed. I made some bad throws reachable, but the frontend check still does detects them.

Aug 1 2017, 8:35 AM · Restricted Project

Jul 13 2017

jyu2 added a comment to D33537: [clang-tidy] Exception Escape Checker.

The check in D33333 is using a CFG, not just checking direct throws.

I tested the latest revision (the fronted patch already included) on my test file. Disregarding of the not so important parameters (EnabledFunctions and IgnoredExceptions) I do not get warnings for any indirect throws (indirect_implicit() and indirect_explicit()). So for me it does not seem to be using the CFG. Furthermore, I do not get warning for throw_and_catch_some() where 1.1 is a double thus catch(int &) should not catch it. The same happens in throw_catch_rethrow_the_rest(), where catch(int &) should not catch 1.1, but catch(...) should catch and rethrow it. This latter may be a bug.

Jul 13 2017, 8:53 AM · Restricted Project

Jun 30 2017

jyu2 added inline comments to D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.
Jun 30 2017, 5:19 PM
jyu2 updated the diff for D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.

Hi Richard,

Jun 30 2017, 5:19 PM
jyu2 added inline comments to D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.
Jun 30 2017, 4:38 PM
jyu2 updated the diff for D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.

Hi Aaron,
Thank you so much for your review. I just update change to address your comments.

Jun 30 2017, 4:37 PM

Jun 29 2017

jyu2 added inline comments to D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.
Jun 29 2017, 4:18 PM
jyu2 updated the diff for D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.

Thank you so much Richard for your review. It is very good to know this select method for diagnostic.

Jun 29 2017, 4:11 PM

Jun 27 2017

jyu2 updated the summary of D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.
Jun 27 2017, 9:44 AM

Jun 26 2017

jyu2 created D34671: This is to address more command from Richard Smith for my change of https://reviews.llvm.org/D33333.
Jun 26 2017, 11:31 PM

Jun 21 2017

jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Update test.

Jun 21 2017, 9:14 PM

Jun 16 2017

jyu2 added inline comments to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
Jun 16 2017, 2:27 PM
jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

update patch

Jun 16 2017, 2:27 PM
jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Update patch

Jun 16 2017, 1:57 PM
jyu2 added inline comments to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
Jun 16 2017, 1:56 PM
jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Thanks Aaron!!! I just upload new patch to address your comments. I now understand your point on when I can use auto.

Jun 16 2017, 8:06 AM

Jun 15 2017

jyu2 added inline comments to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
Jun 15 2017, 5:05 PM
jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
Jun 15 2017, 5:00 PM
jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Address Aaron's comments.

Jun 15 2017, 4:49 PM

Jun 5 2017

jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Add more test include 1> throw/catch reference types. 2> try block. 3>unreachable code.

Jun 5 2017, 12:59 AM

Jun 2 2017

jyu2 added inline comments to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
Jun 2 2017, 9:00 AM

Jun 1 2017

jyu2 added inline comments to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
Jun 1 2017, 9:59 PM
jyu2 added a comment to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
In D33333#768332, @jyu2 wrote:

Okay this CFG version of this change. In this change I am basic using same algorithm with -Winfinite-recursion.

In addition to my original implementation, I add handler type checking which basic using https://reviews.llvm.org/D19201 method.

Thank you, I think this is a step in the right direction!

There are couple things I am worry about this implementation:
1> compile time...

Do you have any timing data on whether this has a negative performance impact?

2> Correctness...

Your implementation looks reasonable to me, but with further review (and good tests), we should have a better grasp on correctness.

3> Stack overflow for large CFG...

I would be surprised if that were a problem, but is something we could address if it ever arises.

Jun 1 2017, 9:56 PM
jyu2 added inline comments to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
Jun 1 2017, 9:53 PM
jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Update to address review comments.

Jun 1 2017, 9:49 PM

May 30 2017

jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Okay this CFG version of this change. In this change I am basic using same algorithm with -Winfinite-recursion.

May 30 2017, 4:37 PM

May 23 2017

jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

I missed two place which Aaron point out.
1> using isNothrow function instead NR_Nothrow.
2> A format problem.

May 23 2017, 1:09 AM

May 22 2017

jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

This is new version should address all @Aaron's commands, but CFG part.

May 22 2017, 1:40 PM
jyu2 added a comment to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
In D33333#761224, @rnk wrote:

Re: clang-tidy, I would rather implement this as a traditional compiler warning.

In D33333#761126, @jyu2 wrote:

As I said, I don't think checking throw type matching catch handler type is compiler's job. I'd like either silence all warning for that. What do you think?

Consider the following cases:
...
I think the expected behavior in these cases is reasonable (and can be done with a CFG) rather than manually looking at the scope stack like you're doing.

I agree with @jyu2, we should do something simple. I think it would be simple to handle all cases except for h, which requires semantic analysis to figure out if the thrown object would be caught by the catch parameter. Implementing that is more likely to introduce bugs in the compiler than it is to find bugs in user code.

I'm not certain I agree with the assertion it's more likely to introduce bugs in the compiler than find bugs in user code. Machine-generated code runs into silly things like this, and it's nice to warn the user about it. However, it may be reasonable to do that in a follow-up patch -- but that patch is likely to have a lot of churn since it's not really plausible to implement with the way @jyu2 has structured this patch. By making this an analysis-based warning instead, that would alleviate my concerns (but would likely require implementing the CFG approach anyway).

I doubt we need the CFG for any of this. The later examples are all throwing exceptions from catch blocks, which is the same as not having an open try scope.

Sure, if you cut out the cases that require a CFG, you don't need a CFG for it. :-P Use of a CFG would eliminate obvious false-positives such as h().

Also, there should be some tests with function-try-blocks.

May 22 2017, 11:08 AM
jyu2 added a comment to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
In D33333#760419, @jyu2 wrote:

As an FYI, there is a related check currently under development in clang-tidy; we probably should not duplicate this functionality in both places. See https://reviews.llvm.org/D19201 for the other review.

To my understanding, clang-tidy is kind of source check tool. It does more intensive checking than compiler.
My purpose here is to emit minimum warning form compiler, in case, clang-tidy is not used.

Sort of correct. clang-tidy doesn't necessarily do more intensive checking than the compiler. It's more an AST matching source checking tool for checks that are either expensive or have a higher false-positive rate than we'd want to see in the frontend.

I think that this particular check should probably be in the frontend, like you're doing. My biggest concern is that we do not duplicate functionality between the two tools. D19201 has has a considerable amount of review, so you should look at the test cases there and ensure you are handling them (including the fixits). Hopefully your patch ends up covering all of the functionality in the clang-tidy patch.

Could you add similar tests as the ones that Stanislaw provied in his patch?
Like the one with checking if throw is catched, or the conditional noexcept (by a macro, etc)

Good idea! Could add “marco” test for this. But I am not sure compiler want to add check for throw caught by different catch handler. Because at compile time, compiler can not statically determine which catch handler will be used to caught the exception on all time. I would think that is pragma's responsibility.

For example:

If (a) throw A else throw B;

My main concern there is implicit noexcept gets set by compiler, which cause runtime to termination.

May 22 2017, 9:15 AM

May 21 2017

jyu2 added a comment to D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

As an FYI, there is a related check currently under development in clang-tidy; we probably should not duplicate this functionality in both places. See https://reviews.llvm.org/D19201 for the other review.

May 21 2017, 7:52 AM

May 18 2017

jyu2 updated the diff for D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.

Reid,
Thank you so much for your comments. I upload new patch to address your suggestion.
1> Emit warning for throw exception in all noexcept function. And special diagnostic note for destructor and delete operators.
2> Silence this warning when the throw inside try block.

May 18 2017, 6:49 PM
jyu2 created D33333: Emit warning when throw exception in destruct or dealloc functions which has a (possible implicit) noexcept specifier.
May 18 2017, 12:14 PM

Dec 6 2016

jyu2 updated the diff for D27358: [MS-ABI]V-base dtor called more than needed when throw happens in v-base ctor in window. Need add "complete object flag" check in eh cleanup code..

last one missing test part diff. Sorry for that

Dec 6 2016, 2:50 PM · Restricted Project