Page MenuHomePhabricator

MTC (liushuai wang)
compiler engineer

Projects

User does not belong to any projects.

User Details

User Since
Jul 19 2017, 4:18 AM (253 w, 2 d)

Compiler engineer at ByteDance. Concentrate on performance optimization and program analysis.

Recent Activity

Sun, May 8

MTC removed a watcher for debug-info: MTC.
Sun, May 8, 8:03 PM

Wed, May 4

MTC added a comment to D123924: [clang-apply-replacements] Added an option to ignore insert conflict..

I don't know enough about this code base to feel comfortable signing off on it, but the changes look reasonable to me FWIW.

Wed, May 4, 6:51 PM · Unknown Object (Project), Restricted Project, Restricted Project

Fri, Apr 29

MTC added a reviewer for D123924: [clang-apply-replacements] Added an option to ignore insert conflict.: aaron.ballman.
Fri, Apr 29, 12:33 AM · Unknown Object (Project), Restricted Project, Restricted Project

Apr 27 2022

MTC accepted D124105: [ELF] Support -plugin-opt=stats-file=.

Appreciate your fix, LGTM. I didn't notice the subtle differences between the option prefixes. Please wait for the last review from @MaskRay before landing it.

Apr 27 2022, 5:22 AM · Restricted Project, Restricted Project

Apr 25 2022

MTC added inline comments to D123924: [clang-apply-replacements] Added an option to ignore insert conflict..
Apr 25 2022, 9:01 PM · Unknown Object (Project), Restricted Project, Restricted Project

Mar 27 2022

MTC added inline comments to D122473: Add new explanation for some shortcomings(WPD, CFI) for lexicon.
Mar 27 2022, 8:30 PM · Restricted Project, Restricted Project

Mar 22 2022

MTC updated MTC.
Mar 22 2022, 12:27 AM

Mar 17 2022

MTC added a comment to D121888: [LTO][ELF] Require asserts for --stats-file= tests..

I appreciate your guidance and the feedback, thanks : )

Mar 17 2022, 8:15 AM · Restricted Project, Restricted Project, lld
MTC added a comment to D121888: [LTO][ELF] Require asserts for --stats-file= tests..

Sorry for the patch abuse, the pre-merge build bot didn't catch the failures, like https://lab.llvm.org/buildbot/#/builders/124/builds/3948 and https://lab.llvm.org/buildbot/#/builders/67/builds/6214. Hopefully, this patch will fix it.

Mar 17 2022, 1:47 AM · Restricted Project, Restricted Project, lld
MTC requested review of D121888: [LTO][ELF] Require asserts for --stats-file= tests..
Mar 17 2022, 1:43 AM · Restricted Project, Restricted Project, lld

Mar 16 2022

MTC added a comment to D121809: [LTO][ELF] Add --stats-file= option..

Sorry to interrupt, seems this patch caused the build failure, see https://lab.llvm.org/buildbot/#/builders/124/builds/3944. I don't have any clue why this failed, Did I miss something for the test file? Like ; REQUIRES: x86 is indispensable?

Ah, for stats printing I believe you need a "REQUIRES: asserts"

Mar 16 2022, 11:54 PM · Restricted Project, Restricted Project, lld
MTC added a comment to D121809: [LTO][ELF] Add --stats-file= option..

Sorry to interrupt, seems this patch caused the build failure, see https://lab.llvm.org/buildbot/#/builders/124/builds/3944. I don't have any clue why this failed, Did I miss something for the test file? Like ; REQUIRES: x86 is indispensable?

Mar 16 2022, 10:24 PM · Restricted Project, Restricted Project, lld
MTC committed rG1c04b52b2594: [LTO][ELF] Add --stats-file= option. (authored by MTC).
[LTO][ELF] Add --stats-file= option.
Mar 16 2022, 9:02 PM · Restricted Project
MTC closed D121809: [LTO][ELF] Add --stats-file= option..
Mar 16 2022, 9:01 PM · Restricted Project, Restricted Project, lld
MTC added a comment to D121809: [LTO][ELF] Add --stats-file= option..

Thanks for all the kind comments, I have updated the patch.

Mar 16 2022, 5:14 PM · Restricted Project, Restricted Project, lld
MTC updated the diff for D121809: [LTO][ELF] Add --stats-file= option..

NFC, improve the comments and the test.

Mar 16 2022, 5:12 PM · Restricted Project, Restricted Project, lld
MTC requested review of D121809: [LTO][ELF] Add --stats-file= option..
Mar 16 2022, 7:58 AM · Restricted Project, Restricted Project, lld

Feb 23 2022

MTC added inline comments to D117090: [clang-tidy] Fix `readability-non-const-parameter` for parameter referenced by an lvalue.
Feb 23 2022, 7:05 PM · Unknown Object (Project)
MTC added inline comments to D117090: [clang-tidy] Fix `readability-non-const-parameter` for parameter referenced by an lvalue.
Feb 23 2022, 6:36 PM · Unknown Object (Project)

Jan 12 2022

MTC added inline comments to D117090: [clang-tidy] Fix `readability-non-const-parameter` for parameter referenced by an lvalue.
Jan 12 2022, 12:44 AM · Unknown Object (Project)

Jan 7 2022

MTC updated subscribers of D116439: [clang-tidy] Fix `readability-const-return-type` for pure virtual function..

FYI: I'm from Bytedance Inc, @Sockke, and I are fixing the AutoFix bugs recently, most of them will lead to the compilation error. For this bug, fixing the override virtual methods but missing the pure virtual base method, which will cause the compilation error. These annoying bugs will hinder the large-scale deployment of clang-tidy AutoFix in the production environment.

Jan 7 2022, 2:06 AM · Unknown Object (Project)
MTC added a comment to D107450: [clang-tidy] Fix wrong FixIt in performance-move-const-arg.

This patch has become very complicated now. I summarized this patch and give a figure to illustrate what we have reached. And @Sockke please add some comments to explain the complex part or other means to make this patch more readable.

Jan 7 2022, 1:13 AM · Unknown Object (Project)

Aug 30 2021

MTC committed rGf10d003b0c1e: [tsan] Add environment variable TSAN_SYMBOLIZER_PATH as we do in other… (authored by Enna1).
[tsan] Add environment variable TSAN_SYMBOLIZER_PATH as we do in other…
Aug 30 2021, 7:19 PM
MTC closed D108911: [tsan] Add environment variable TSAN_SYMBOLIZER_PATH as we do in other sanitizers.
Aug 30 2021, 7:19 PM · Unknown Object (Project)

Aug 19 2021

MTC added inline comments to D108370: [clang-tidy] Fix wrong FixIt about union in cppcoreguidelines-pro-type-member-init.
Aug 19 2021, 6:31 AM · Unknown Object (Project)

Aug 17 2021

MTC committed rG168ee727186b: [NFC][llvm-xray] add a llvm-xray convert option `no-demangle` (authored by Enna1).
[NFC][llvm-xray] add a llvm-xray convert option `no-demangle`
Aug 17 2021, 9:22 PM
MTC closed D108019: [NFC][llvm-xray] add a llvm-xray convert option `no-demangle`.
Aug 17 2021, 9:22 PM · Restricted Project
MTC resigned from D67149: Fix argument order for BugType instation for .
Aug 17 2021, 7:24 PM · Restricted Project

Aug 16 2021

Herald added a project to D81923: [clang-tidy] Add modernize-use-ranges check.: Unknown Object (Project).
Aug 16 2021, 7:17 PM · Unknown Object (Project), Restricted Project
Herald added a project to D80490: [clang-tidy] Check for rule of five and zero.: Unknown Object (Project).
Aug 16 2021, 7:17 PM · Unknown Object (Project), Restricted Project
Herald added a project to D96685: [WIP] Add noexcept clang-tidy codemod: Unknown Object (Project).
Aug 16 2021, 7:11 PM · Unknown Object (Project), Restricted Project
MTC added a watcher for debug-info: MTC.
Aug 16 2021, 6:53 PM
MTC added a comment to D67149: Fix argument order for BugType instation for .

Hi @NoQ, sorry to bother you. This patch has been on hold for a very long time. It should not have been fixed yet. What's next? Abandon the patch, or improve it yourself?

Aug 16 2021, 6:01 PM · Restricted Project

Aug 15 2021

MTC added a reviewer for D108019: [NFC][llvm-xray] add a llvm-xray convert option `no-demangle`: MTC.
Aug 15 2021, 10:45 PM · Restricted Project
MTC added a comment to D108019: [NFC][llvm-xray] add a llvm-xray convert option `no-demangle`.

Perhaps switch to no-demangle by default and add --symbolize-demangle?

Aug 15 2021, 8:08 PM · Restricted Project

Aug 13 2021

MTC committed rG1f2d40c47f5f: [clang-tidy] fix duplicate '{}' in cppcoreguidelines-pro-type-member-init (authored by Sockke).
[clang-tidy] fix duplicate '{}' in cppcoreguidelines-pro-type-member-init
Aug 13 2021, 9:13 PM
MTC closed D107641: [clang-tidy] fix duplicate '{}' in cppcoreguidelines-pro-type-member-init.
Aug 13 2021, 9:13 PM · Unknown Object (Project)

Aug 11 2021

MTC added a comment to D107450: [clang-tidy] Fix wrong FixIt in performance-move-const-arg.

I think we're a bit off track, and @Sockke wants to accomplish more than one goal in the same patch. I have summarized what we are currently discussing as follow shows:

Aug 11 2021, 12:28 AM · Unknown Object (Project)

Aug 10 2021

MTC added inline comments to D107450: [clang-tidy] Fix wrong FixIt in performance-move-const-arg.
Aug 10 2021, 6:33 AM · Unknown Object (Project)

Aug 8 2021

MTC added inline comments to D107641: [clang-tidy] fix duplicate '{}' in cppcoreguidelines-pro-type-member-init.
Aug 8 2021, 11:18 PM · Unknown Object (Project)

Aug 7 2021

MTC added inline comments to D107641: [clang-tidy] fix duplicate '{}' in cppcoreguidelines-pro-type-member-init.
Aug 7 2021, 6:59 PM · Unknown Object (Project)

Aug 5 2021

MTC added inline comments to D107450: [clang-tidy] Fix wrong FixIt in performance-move-const-arg.
Aug 5 2021, 6:29 AM · Unknown Object (Project)

Jul 24 2021

MTC accepted D106741: [ASAN] NFC: Remove redundant variable.

Thanks for the cleanup.

Jul 24 2021, 1:18 AM · Restricted Project

Jul 21 2021

MTC added inline comments to D106431: [clang-tidy] Fix cppcoreguidelines-init-variables by removing the enum FixIt, and add support for initialization check of scoped enum..
Jul 21 2021, 5:02 AM · Unknown Object (Project)
MTC added a comment to D106431: [clang-tidy] Fix cppcoreguidelines-init-variables by removing the enum FixIt, and add support for initialization check of scoped enum..

Is this the right decision to make, conceptually? It will leave the variable uninitialised still, and reading such an uninit variable is still an issue, even if it is an enum.

Yeah, that's right. However, it's much more difficult to give enum an initial value than an integer.

Jul 21 2021, 4:59 AM · Unknown Object (Project)

Jul 14 2021

MTC accepted D105973: [ASTMatchers] NFC: Fix the annotation..

LGTM, thanks for your cleanup.

Jul 14 2021, 8:05 PM · Restricted Project

Apr 11 2021

MTC updated MTC.
Apr 11 2021, 2:19 AM

Dec 14 2020

MTC updated MTC.
Dec 14 2020, 2:32 AM

Nov 22 2019

MTC updated subscribers of D67149: Fix argument order for BugType instation for .
Nov 22 2019, 1:43 AM · Restricted Project
MTC added a comment to D67149: Fix argument order for BugType instation for .

Good catch, the fix is reasonable to me. However, I'm no longer wok on the analyzer now, maybe you can add @NoQ Or some other active reviewers to review the code.

Nov 22 2019, 1:43 AM · Restricted Project

Jan 27 2019

MTC resigned from D54823: [analyzer][MallocChecker][NFC] Document and reorganize some functions.
Jan 27 2019, 1:06 AM · Restricted Project, Restricted Project
MTC resigned from D52984: [analyzer] Checker reviewer's checklist.
Jan 27 2019, 1:06 AM · Restricted Project

Dec 9 2018

MTC added a comment to D55388: [analyzer] MoveChecker Pt.8: Add checks for dereferencing a smart pointer after move..

Hm. I wonder if it would also make sense to model e.g. the get method to return nullptr for moved from smart ptrs. This could help null dereference checker and also aid false path prunning.

Dec 9 2018, 6:45 AM

Dec 6 2018

MTC accepted D55388: [analyzer] MoveChecker Pt.8: Add checks for dereferencing a smart pointer after move..
Dec 6 2018, 10:52 PM

Dec 4 2018

MTC accepted D55226: [Fix][StaticAnalyzer] Bug 39792 - False positive on strcpy targeting struct member.
Dec 4 2018, 4:12 AM
MTC added a comment to D55226: [Fix][StaticAnalyzer] Bug 39792 - False positive on strcpy targeting struct member.

Please add more context using the -U option, like git diff -U99999 ....

Dec 4 2018, 4:12 AM

Nov 26 2018

MTC added a comment to D54878: [clangd] NFC: Prefer `isa<>` to `dyn_cast<>` to do the checking..

But given that isa<> are still better than dyn_cast<>, this change might still be worth landing.

We can land this change this time or do the cleaning job in other patches in the future, it's all up to you guys, the active clangd contributors :).

Nov 26 2018, 5:51 AM
MTC retitled D54878: [clangd] NFC: Prefer `isa<>` to `dyn_cast<>` to do the checking. from [clangd] NFC: Eliminate the unused variable warning. to [clangd] NFC: Prefer `isa<>` to `dyn_cast<>` to do the checking..
Nov 26 2018, 5:43 AM
MTC updated the diff for D54878: [clangd] NFC: Prefer `isa<>` to `dyn_cast<>` to do the checking..

Use more concise form.

Nov 26 2018, 5:35 AM

Nov 25 2018

MTC added inline comments to D54878: [clangd] NFC: Prefer `isa<>` to `dyn_cast<>` to do the checking..
Nov 25 2018, 7:10 PM
MTC created D54878: [clangd] NFC: Prefer `isa<>` to `dyn_cast<>` to do the checking..
Nov 25 2018, 6:42 AM

Nov 24 2018

MTC added inline comments to D54823: [analyzer][MallocChecker][NFC] Document and reorganize some functions.
Nov 24 2018, 7:34 AM · Restricted Project, Restricted Project

Nov 22 2018

MTC added a comment to D54823: [analyzer][MallocChecker][NFC] Document and reorganize some functions.

Thank you for doing the cleaning that no one else is interested in! Comments is inline below.

Nov 22 2018, 8:36 AM · Restricted Project, Restricted Project

Nov 16 2018

MTC added a comment to D54560: [analyzer] MoveChecker Pt.3: Improve warning messages a bit..

The "moved-from" terminology we adopt here still feels a bit weird to me, but i don't have a better suggestion, so i just removed the single-quotes so that to at least feel proud about what we have.

I am personally fine with this terminology, this checker corresponds to the cert rule EXP63-CPP. Do not rely on the value of a moved-from object, and moved from is also used in many places in CppCoreGuidelines.

Nov 16 2018, 11:44 PM
MTC closed D54528: [lldb] NFC: Remove the extra ';'.
Nov 16 2018, 5:04 AM

Nov 14 2018

MTC updated the summary of D54528: [lldb] NFC: Remove the extra ';'.
Nov 14 2018, 8:06 AM
MTC set the repository for D54528: [lldb] NFC: Remove the extra ';' to rLLDB LLDB.
Nov 14 2018, 8:03 AM
MTC created D54528: [lldb] NFC: Remove the extra ';'.
Nov 14 2018, 8:02 AM

Nov 12 2018

MTC added a comment to D54401: [analyzer] Prefer returns values to out-params in CheckerRegistry.cpp.

I'm totally fine with this patch personally. However I am not familiar with this part, so can't give substantial help :).

Nov 12 2018, 5:47 AM
MTC added inline comments to D54138: [WebAssembly] Read prefixed opcodes as ULEB128s.
Nov 12 2018, 4:34 AM

Nov 1 2018

MTC added a comment to D52949: [Diagnostics] Implement -Wsizeof-pointer-div .

Sorry for the long delay for this patch! The implementation is fine for me. However, I'm the newbie on clang diagnostics and have no further insight into this checker. @aaron.ballman may have more valuable insights into this checker.

Nov 1 2018, 4:04 AM

Oct 29 2018

MTC added a comment to D53856: [analyzer] Put llvm.Conventions back in alpha.

In addition, clang/lib/StaticAnalyzer/README.txt and other related docs in clang/lib/docs/analyzer are also out of date.

Oct 29 2018, 7:47 PM

Oct 23 2018

MTC added inline comments to D53543: [analyzer] MallocChecker: pr39348: Realize that sized delete isn't a custom delete..
Oct 23 2018, 7:10 PM
MTC added a comment to D52949: [Diagnostics] Implement -Wsizeof-pointer-div .

Second thought, I don't think we should recommend std::size here (maybe it should be okay for clang static analyzers)

uint32_t data[] = {10, 20, 30, 40};
len = sizeof(data)/sizeof(*data); // "warn" on valid code to recommend std::size? I dont agree with such behaviour.

Oct 23 2018, 9:19 AM
MTC added inline comments to D53543: [analyzer] MallocChecker: pr39348: Realize that sized delete isn't a custom delete..
Oct 23 2018, 6:53 AM

Oct 10 2018

MTC updated subscribers of D53024: [analyzer][www] Add more open projects.

Also, a lot of items on this list is outdated, but I joined the project relatively recently, so I'm not sure what's the state on all of them.

Oct 10 2018, 11:10 PM

Oct 9 2018

MTC added a comment to D52984: [analyzer] Checker reviewer's checklist.

Greate idea! If we can enrich this list, it will not only help the reviewer, but also help beginners, like me, avoid some pitfalls when developing a new checker.

Oct 9 2018, 5:29 AM · Restricted Project

Aug 29 2018

MTC accepted D51390: [analyzer] CallDescription: Improve array management..

Thank you for digging in to delete that meaningless constructor, NoQ! And sorry for my technology debt : ).

Aug 29 2018, 7:20 PM

Aug 23 2018

MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..
In D48027#1209844, @NoQ wrote:

So i believe that one of the important remaining problems with CallDescription is to teach it to discriminate between global functions and methods. We can do it in a number of ways:

  1. Make a special sub-class for CallDescription depending on the sort of the function (too verbose),
  2. Tag all items in the list as "record" vs. "namespace" (too many tags),
  3. Dunno, tons of other boring and verbose approaches,
  4. Change our PreCall/PostCall callbacks to callback templates that let allow the user subscribe to specific sub-classes of CallEvent similarly to how he can subscribe to different kinds of statements in PreStmt<Class>/PostStmt<Class>, and then the user doesn't need to write any code to check it dynamically.
Aug 23 2018, 7:13 PM

Aug 22 2018

MTC updated the summary of D48027: [analyzer] Improve `CallDescription` to handle c++ method..
Aug 22 2018, 6:30 AM
MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

Sorry for the delay, I think this is OK to commit.
As a possible improvement, I can imagine making it slightly stricter, e.g. you could only skip QualifiedNames for inline namespaces and the beginning. Maybe add support for staring with "" or :: to even disable skipping namespaces at the beginning?
But these are just nice to have features, I am perfectly ok with not having them or doing it in a followup patch.

Aug 22 2018, 6:29 AM

Aug 21 2018

MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

@xazax.hun What do you think?

Aug 21 2018, 4:23 AM

Aug 17 2018

MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

Generally looks good, I only wonder if this works well with inline namespaces. Could you test? Probably it will.

Aug 17 2018, 5:38 AM
MTC updated the diff for D48027: [analyzer] Improve `CallDescription` to handle c++ method..
  • rebase
  • Since we have enhanced the ability of CallDescription, remove the helper method isCalledOnStringObject().
Aug 17 2018, 5:24 AM

Aug 13 2018

MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

kindly ping!

Aug 13 2018, 7:28 AM

Aug 7 2018

MTC created D50382: [analyzer] Fix a typo in `RegionStore.txt`..
Aug 7 2018, 5:25 AM

Jul 26 2018

MTC updated the diff for D48027: [analyzer] Improve `CallDescription` to handle c++ method..

@xazax.hun Thanks for your tips! After some investigation, MatchFinder::match just traverse one ASTNode, that means match(namedDecl(HasNameMatcher())) and match(namedDecl(matchesName())) both not traverse children. So there are three ways to match the specified AST node.

Jul 26 2018, 9:36 AM

Jul 4 2018

MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

Thanks for your review, NoQ!

Jul 4 2018, 7:15 AM

Jun 29 2018

MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

kindly ping!

Jun 29 2018, 7:30 PM

Jun 25 2018

MTC updated the diff for D48027: [analyzer] Improve `CallDescription` to handle c++ method..

Sorry for the long long delay, I was on the Dragon Boat Festival a few days ago.

Jun 25 2018, 8:59 AM

Jun 13 2018

MTC added inline comments to D48027: [analyzer] Improve `CallDescription` to handle c++ method..
Jun 13 2018, 7:21 PM
MTC added a reviewer for D48027: [analyzer] Improve `CallDescription` to handle c++ method.: rnkovacs.
Jun 13 2018, 7:49 AM
MTC updated the diff for D48027: [analyzer] Improve `CallDescription` to handle c++ method..
  • Use hasName matcher to match the qualified name.
Jun 13 2018, 7:48 AM

Jun 12 2018

MTC abandoned D47973: [ADT] Change the behavior of `StringRef::rsplit()` when the separator is not found..
Jun 12 2018, 5:53 AM
MTC added inline comments to D47616: [CFG] [analyzer] Explain copy elision through construction contexts..
Jun 12 2018, 12:00 AM

Jun 11 2018

MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

Having C++ support would be awesome!
Thanks for working on this!

While I do agree matching is not trivial with qualified names, this problem is already solved with AST matchers.

I wonder if using matchers or reusing the HasNameMatcher class would make this easier. That code path is already well tested and optimized.

Jun 11 2018, 7:13 PM
MTC updated the diff for D48027: [analyzer] Improve `CallDescription` to handle c++ method..

Remove useless header files for testing.

Jun 11 2018, 7:56 AM
MTC added a comment to D48027: [analyzer] Improve `CallDescription` to handle c++ method..

The implementation is not complicated, the difficulty is that there is no good way to get the qualified name without template arguments. For std::basic_string::c_str(), its qualified name may be std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::c_str, it is almost impossible for users to provide such a name. So one possible implementation is to use std, basic_string and c_str to match in the std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::c_str sequentially.

Jun 11 2018, 7:47 AM
MTC created D48027: [analyzer] Improve `CallDescription` to handle c++ method..
Jun 11 2018, 7:39 AM

Jun 9 2018

MTC added a comment to D47973: [ADT] Change the behavior of `StringRef::rsplit()` when the separator is not found..
In D47973#1127309, @vsk wrote:

Thanks for the patch. The StringRef change itself looks fine, but please make sure to update the callsites in-tree (e.g in llvm, clang, lldb etc).

Jun 9 2018, 7:27 AM