Page MenuHomePhabricator

Bigcheese (Michael Spencer)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 7 2012, 3:08 PM (371 w, 6 d)

Recent Activity

Wed, Aug 21

Bigcheese accepted D65907: Introduce FileEntryRef and use it when handling includes to report correct dependencies when the FileManager is reused across invocations.
Wed, Aug 21, 2:02 PM · Restricted Project, Restricted Project

Thu, Aug 15

Bigcheese requested changes to D65907: Introduce FileEntryRef and use it when handling includes to report correct dependencies when the FileManager is reused across invocations.
Thu, Aug 15, 3:56 PM · Restricted Project, Restricted Project

Wed, Aug 14

Bigcheese added inline comments to D65907: Introduce FileEntryRef and use it when handling includes to report correct dependencies when the FileManager is reused across invocations.
Wed, Aug 14, 4:29 PM · Restricted Project, Restricted Project

Tue, Aug 13

Bigcheese added inline comments to D66172: [clang][Modules] Serialize decl to comment mapping to speed up code completion..
Tue, Aug 13, 3:04 PM

Fri, Aug 9

Bigcheese added a comment to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.

This fix works, but we could also use openat to get around max path length issues. Windows also has an API that can be used similarly.

Fri, Aug 9, 10:26 AM · Restricted Project

Thu, Aug 8

Bigcheese committed rG1861f4ea2584: [clang-scan-deps] Add minimizer support for C++20 modules. (authored by Bigcheese).
[clang-scan-deps] Add minimizer support for C++20 modules.
Thu, Aug 8, 7:03 PM
Bigcheese closed D65989: [clang-scan-deps] Add minimizer support for C++20 modules..

Fixed and committed as r368381.

Thu, Aug 8, 7:03 PM · Restricted Project
Bigcheese created D65989: [clang-scan-deps] Add minimizer support for C++20 modules..
Thu, Aug 8, 6:45 PM · Restricted Project

Wed, Aug 7

Bigcheese added a comment to D65493: Modernize atomic detection and usage.

This looks like a good simplification, but I think call_once could be simplified more.

Wed, Aug 7, 6:21 PM · Restricted Project, Restricted Project, Restricted Project

Wed, Jul 31

Bigcheese committed rG33703fb9f908: [clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems. (authored by Bigcheese).
[clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems.
Wed, Jul 31, 1:46 PM

Jul 11 2019

Bigcheese accepted D64191: [libcxxabi] Don't process exceptions in cxa_handlers when they're disabled.

looks good. @ldionne are you happy with the changes?

Jul 11 2019, 2:53 PM · Restricted Project

Jul 10 2019

Bigcheese added a comment to D64191: [libcxxabi] Don't process exceptions in cxa_handlers when they're disabled.

FYIe, you can also prevent this symbol to be linked in by putting a cxa_demangle function in an obj file that gets linked first, like so: https://cs.chromium.org/chromium/src/third_party/android_crazy_linker/src/src/crazy_linker_wrappers.cpp?type=cs&q=cxa_demangle+file:android&sq=package:chromium&g=0&l=54 – but I agree that since cxa_demangle is so large, it'd be nice if the upstream version was behind some kind of define. Then we could set that and remove that hack in chromium too. I don't have an opinion on if that should be a new define or if _LIBCXXABI_NO_EXCEPTIONS should be reused. Actually, I think we build libcxxabi with exceptions enabled because some of our test code can in theory throw exceptions, but we have an external dumper so we don't need the stack from terminate() – so it'd be somewhat more convenient for us if we could turn off the stack from terminate() (and the pulling in of __cxa_demangle) while still being able to build without setting _LIBCXXABI_NO_EXCEPTIONS.

Jul 10 2019, 6:48 PM · Restricted Project
Bigcheese accepted D64191: [libcxxabi] Don't process exceptions in cxa_handlers when they're disabled.

_LIBCXXABI_NO_EXCEPTIONS removes the exceptions abi from libc++abi, so I think this change as fine as __cxa_throw isn't even defined if _LIBCXXABI_NO_EXCEPTIONS is defined.

Jul 10 2019, 6:43 PM · Restricted Project
Bigcheese accepted D64525: [clang-scan-deps] Dependency directives source minimizer: single quotes are not digit separators after a valid character literal prefix.
Jul 10 2019, 1:02 PM · Restricted Project, Restricted Project
Bigcheese added inline comments to D64525: [clang-scan-deps] Dependency directives source minimizer: single quotes are not digit separators after a valid character literal prefix.
Jul 10 2019, 12:37 PM · Restricted Project, Restricted Project

Jul 3 2019

Bigcheese retitled D64164: [clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems. from [clang][ARM] Fix msvc arm{64} builtins to use int on LLP64 systems. to [clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems..
Jul 3 2019, 5:45 PM · Restricted Project, Restricted Project
Bigcheese added a comment to D64164: [clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems..
In D64164#1569679, @rnk wrote:

Please check the commit message:

[clang][ARM] Fix msvc arm{64} builtins to use int on LLP64 systems.

I think you mean "use int on LP64 systems", since long is 32-bits on LLP64, right?

Otherwise, sounds good.

Jul 3 2019, 5:45 PM · Restricted Project, Restricted Project
Bigcheese added a comment to D64164: [clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems..

Do the changes to BuiltinsARM.def have any practical effect? long should be 32 bits on all 32-bit ARM targets.

Jul 3 2019, 4:34 PM · Restricted Project, Restricted Project
Bigcheese updated the summary of D64164: [clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems..
Jul 3 2019, 4:03 PM · Restricted Project, Restricted Project
Bigcheese created D64164: [clang][ARM] Fix msvc arm{64} builtins to use int on LP64 systems..
Jul 3 2019, 3:55 PM · Restricted Project, Restricted Project
Bigcheese accepted D64149: [clang-scan-deps] use `-Wno-error` when scanning for dependencies.

LGTM

Jul 3 2019, 10:56 AM · Restricted Project, Restricted Project
Bigcheese added a reviewer for D64146: [Clang Interpreter] Initial patch for the constexpr interpreter: Bigcheese.
Jul 3 2019, 10:36 AM · Restricted Project

Jun 25 2019

Bigcheese added inline comments to D63518: BitStream reader: propagate errors.
Jun 25 2019, 2:21 PM · Restricted Project, Restricted Project

Jun 17 2019

Bigcheese added a comment to D63453: [Support] Move llvm::MemoryBuffer to sys::fs::file_t.

Where do you want to keep these open? The default OS limit on open files for OSX is 256.

Jun 17 2019, 6:12 PM · Restricted Project
Bigcheese updated subscribers of D63388: WIP: experimenting with EH optimizations.

Also adding the llvm-commits list.

Jun 17 2019, 1:28 PM
Bigcheese added reviewers for D63388: WIP: experimenting with EH optimizations: rnk, chandlerc, zturner.

Thanks a lot for working on this. There's a lot of room to improve the performance of exceptions that nobody has done for C++ yet. I've added some reviewers that I'm aware are familiar with the area or that I've talked with about this before.

Jun 17 2019, 1:27 PM

Jun 10 2019

Bigcheese accepted D63101: [Frontend] SetUpDiagnosticLog should handle unowned diagnostic consumer in the compiler.

LGTM

Jun 10 2019, 3:33 PM · Restricted Project

May 31 2019

Bigcheese added a reviewer for D62711: [MACHO] Replaced calls to getStruct with getStructOrErr in functions returning Error or Expected or similar: lhames.

It would be nice to get tests for these cases, although I realize that can be difficult as it requires malformed inputs.

May 31 2019, 10:54 AM · Restricted Project

May 29 2019

Bigcheese requested changes to D61608: Fix YAML parser's Document::skip for null nodes.

Thanks for finding this!

May 29 2019, 3:39 PM · Restricted Project
Bigcheese added a reviewer for D62627: [NFC] Do not run CGProfilePass when -fno-integrated-as is on: chandlerc.

IIUC, user will always call clang to pass integrated as flag. Actually I also used to consider checking UseIntegratedAS-ish in PassBuilder,
but looking for a codegen options in PassBuilder seems going to break the integrity. Solutions for this is appreciated.

May 29 2019, 3:06 PM · Restricted Project
Bigcheese added a comment to D62627: [NFC] Do not run CGProfilePass when -fno-integrated-as is on.

I find it a bit odd to have clang care about this, but I suppose it is the driver that knows which features tools support. I also have an issue with the name as CGProfilePass doesn't actually do the sorting. I would just keep the option as -enable-call-graph-profile-emission or something like that.

May 29 2019, 2:16 PM · Restricted Project

May 28 2019

Bigcheese committed rG7e48b406ef5e: [Driver] Fix -working-directory issues (authored by Bigcheese).
[Driver] Fix -working-directory issues
May 28 2019, 3:23 PM

May 22 2019

Bigcheese created D62271: [Driver] Fix -working-directory issues.
May 22 2019, 3:36 PM · Restricted Project

May 21 2019

Bigcheese accepted D55463: Introduce a source minimizer that reduces source to directives that might affect the dependency list for a compilation.

LGTM.

May 21 2019, 5:59 PM · Restricted Project, Restricted Project

Apr 24 2019

Bigcheese accepted D61096: posix_spawn should retry upon EINTR.
Apr 24 2019, 3:44 PM · Restricted Project

Apr 12 2019

Bigcheese requested changes to D55463: Introduce a source minimizer that reduces source to directives that might affect the dependency list for a compilation.

I have a bit more review to do, but this is what I've found so far. The naming comments are just suggestions, but the digit separators' are actually an issue.

Apr 12 2019, 5:13 PM · Restricted Project, Restricted Project

Mar 27 2019

Bigcheese added inline comments to D59311: [ELF] Dump symbols ordered by profiled guided section layout to file..
Mar 27 2019, 4:05 PM · Restricted Project

Mar 8 2019

Bigcheese accepted D59141: [Support/Endian] Add support for endian-specific enums.

LGTM

Mar 8 2019, 12:18 PM · Restricted Project
Bigcheese requested changes to D59141: [Support/Endian] Add support for endian-specific enums.

I agree with Zach, this should be little_t and big_t. You should also add aligned_big_t and aligned_little_t.

Mar 8 2019, 12:09 PM · Restricted Project

Mar 5 2019

Bigcheese accepted D58969: Expose template parameters of endian specific types as class members.

Ah, I see. This seems fine.

Mar 5 2019, 2:55 PM · Restricted Project
Bigcheese added a comment to D58969: Expose template parameters of endian specific types as class members.

What's the use case?

Mar 5 2019, 10:19 AM · Restricted Project
Bigcheese accepted D58028: Always compare C++ typeinfo (based on libstdc++ implementation)..

LGTM.

Mar 5 2019, 10:12 AM · Restricted Project, Restricted Project

Feb 27 2019

Bigcheese requested changes to D58028: Always compare C++ typeinfo (based on libstdc++ implementation)..

Thanks for the update. This still looks incorrect in that SANITIZER_NON_UNIQUE_TYPEINFO should be 1 on defined(__arm64__) && SANITIZER_IOS and 0 otherwise on SANITIZER_MAC.

Feb 27 2019, 4:04 PM · Restricted Project, Restricted Project

Feb 26 2019

Bigcheese added a comment to D58701: [llvm-readobj] Print section type values for unknown sections..

Then I'm fine with the patch as is.

Feb 26 2019, 5:14 PM · Restricted Project
Bigcheese accepted D58701: [llvm-readobj] Print section type values for unknown sections..

Should the +0 be +0x0 so that it's always a hex digit? Or is the +0 what the binutils already output?

Feb 26 2019, 5:01 PM · Restricted Project

Feb 20 2019

Bigcheese added a comment to D58028: Always compare C++ typeinfo (based on libstdc++ implementation)..

I can if you want. Have you tested that on MacOS or iOS with:

-stdlib=libstdc++

?

Feb 20 2019, 10:31 AM · Restricted Project, Restricted Project

Feb 14 2019

Bigcheese requested changes to D58028: Always compare C++ typeinfo (based on libstdc++ implementation)..

I do not believe this change is correct for MacOS or iOS. The original bug does not reproduce on MacOS, and on arm64 iOS you always need to compare strings. Could you preserve the existing behavior for those platforms?

Feb 14 2019, 5:31 PM · Restricted Project, Restricted Project

Dec 17 2018

Bigcheese created D55789: [VFS] Add isLocal to ProxyFileSystem and add unit tests..
Dec 17 2018, 1:54 PM

Nov 12 2018

Bigcheese accepted D54451: [libObject] Fix getDesc for Elf_Note_Impl.

lgtm

Nov 12 2018, 4:20 PM
Bigcheese added a comment to D54451: [libObject] Fix getDesc for Elf_Note_Impl.

Ah, the bugs canceled each other out. Adding a unit test is fine. Just add a new file in llvm/unittests/Object/.

Nov 12 2018, 4:14 PM
Bigcheese added a comment to D54451: [libObject] Fix getDesc for Elf_Note_Impl.

Overall this looks fine, but can you add a test of something that this fixes? I'm rather surprised that no tests fail now.

Nov 12 2018, 3:34 PM

Nov 1 2018

Bigcheese added a comment to D43157: [RISCV] Properly evaluate VK_RISCV_PCREL_LO.

Ping?

I have a patch available that handles PCREL_LO12_S and is rebased on trunk, if it is okay I will create a separate patch for reviewing.

Nov 1 2018, 10:28 AM

Oct 25 2018

Bigcheese accepted D53683: [ELF] Add --{,no-}call-graph-profile-sort (enabled by default).

lgtm

Oct 25 2018, 4:13 PM
Bigcheese added a comment to D53669: [ELF] Don't check if symbols in .llvm.call-graph-profile are unorderable.

I'm all in favor of removing the warnings. I was against adding them to begin with.

Oct 25 2018, 12:58 PM
Bigcheese added inline comments to D53683: [ELF] Add --{,no-}call-graph-profile-sort (enabled by default).
Oct 25 2018, 12:54 PM

Oct 24 2018

Bigcheese added a comment to D46228: [ELF] Use union-find set and doubly linked list in Call-Chain Clustering (C³) heuristic.

Pretty sure I understand the algorithm now, but I still want to see what performance impact it has to see if it's worth the (minor) complexity. I'll benchmark it on some large links and see what happens.

Oct 24 2018, 6:49 PM · Restricted Project
Bigcheese added a comment to D53683: [ELF] Add --{,no-}call-graph-profile-sort (enabled by default).

I really like adding the option to disable it, but I'm not sure about disabling it by default. Is there any situation where the profile is present where a user wouldn't want to perform layout? The algorithm is very fast so unexpected link time increase isn't really an issue, and the exact order of sections already isn't guaranteed by ELF and differs between linkers so I don't expect there to be correctness issues.

Oct 24 2018, 6:28 PM

Sep 19 2018

Bigcheese updated the diff for D45850: [ELF] Read the call graph profile from object files..
  • Added test for unorderable symbols from object files
  • Removed unneeded temporary
Sep 19 2018, 2:44 PM

Sep 17 2018

Bigcheese added a comment to D45850: [ELF] Read the call graph profile from object files..

ping

Sep 17 2018, 8:51 PM

Sep 7 2018

Bigcheese requested changes to D51205: Move SuffixTree type to a common location.
Sep 7 2018, 2:16 PM

Sep 5 2018

Bigcheese updated the diff for D45850: [ELF] Read the call graph profile from object files..

Address review comments.

Sep 5 2018, 12:42 PM

Jul 23 2018

Bigcheese accepted D49680: [ADT] Replace std::isprint by llvm::isPrint..

lgtm

Jul 23 2018, 12:40 PM

Jul 19 2018

Bigcheese added inline comments to D44910: [docs] Add Markdown support to Sphinx.
Jul 19 2018, 5:00 PM

Jul 18 2018

Bigcheese accepted D49298: Use std::reference_wrapper instead of llvm::ReferenceStorage.

lgtm.

Jul 18 2018, 2:17 PM
Bigcheese added a comment to D44910: [docs] Add Markdown support to Sphinx.

This just needs the recommonmark python package added on whatever server builds the docs.

Jul 18 2018, 2:15 PM

Jul 3 2018

Bigcheese accepted D48859: Make WindowsSupport.h a public header.

Is there a good reason the use cases you want this for can't be added to libSupport? I'm a bit worried about continuing to add platform specific code outside of libSupport.

Mostly that it's quite large. See my recent post on llvm-dev about RFC: libtrace. I don't want to develop an entire library inside of libSupport, and something like a libtrace will unavoidably have a lot of platform specific code. As another example, consider lldb. There's no way to avoid a bunch of platform specific code, and it would be nice if LLVM had a solution that allowed LLDB to re-use some of LLVM's own platform specific code.

Jul 3 2018, 11:58 PM
Bigcheese added a comment to D48859: Make WindowsSupport.h a public header.

Is there a good reason the use cases you want this for can't be added to libSupport? I'm a bit worried about continuing to add platform specific code outside of libSupport.

Jul 3 2018, 8:28 PM

Jun 28 2018

Bigcheese accepted D48703: Add natvis files directly to the PDB instead of to the VS solution.

lgtm

Jun 28 2018, 2:55 PM

Jun 26 2018

Bigcheese updated the diff for D48105: [llvm][Instrumentation] Add Call Graph Profile pass.

Remove duplication on updating Counts.

Jun 26 2018, 3:51 PM
Bigcheese updated the diff for D48105: [llvm][Instrumentation] Add Call Graph Profile pass.

Add support for indirect calls using value profiling data.

Jun 26 2018, 3:27 PM

Jun 25 2018

Bigcheese added inline comments to D48105: [llvm][Instrumentation] Add Call Graph Profile pass.
Jun 25 2018, 7:41 PM
Bigcheese updated the diff for D48105: [llvm][Instrumentation] Add Call Graph Profile pass.
  • Move to new PM
  • Use CallSite
  • Bail early if no profile counts
  • Use TargetTransformInfo::isLoweredToCall
Jun 25 2018, 7:40 PM

Jun 19 2018

Bigcheese added a comment to D46228: [ELF] Use union-find set and doubly linked list in Call-Chain Clustering (C³) heuristic.

I mean performance of actual cases. I'm interested in if the cache effects of list vs vector matter.

Jun 19 2018, 8:09 PM · Restricted Project

Jun 14 2018

Bigcheese added a comment to D46228: [ELF] Use union-find set and doubly linked list in Call-Chain Clustering (C³) heuristic.

Sorry for the delay. What change in performance does this give?

Jun 14 2018, 12:09 PM · Restricted Project

Jun 13 2018

Bigcheese updated the diff for D48105: [llvm][Instrumentation] Add Call Graph Profile pass.

Use the correct diff.

Jun 13 2018, 3:47 PM
Bigcheese added a comment to D48105: [llvm][Instrumentation] Add Call Graph Profile pass.

This is enabled by default as the time and size overhead is so small.

Jun 13 2018, 3:46 PM
Bigcheese updated the diff for D48105: [llvm][Instrumentation] Add Call Graph Profile pass.

Address review comments.

Jun 13 2018, 3:46 PM
Bigcheese added inline comments to D48105: [llvm][Instrumentation] Add Call Graph Profile pass.
Jun 13 2018, 11:48 AM
Bigcheese updated the diff for D48105: [llvm][Instrumentation] Add Call Graph Profile pass.

Address review comments by adding const where applicable.

Jun 13 2018, 11:48 AM

Jun 12 2018

Bigcheese created D48105: [llvm][Instrumentation] Add Call Graph Profile pass.
Jun 12 2018, 4:03 PM

Jun 4 2018

Bigcheese accepted D47080: Add (very partial) Kate syntax highlighting definition for TableGen.

lgtm.

Jun 4 2018, 5:19 AM

May 31 2018

Bigcheese updated the diff for D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..

I've changed the behavior to better match the existing semantics.

May 31 2018, 4:02 PM

May 29 2018

Bigcheese added inline comments to D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..
May 29 2018, 6:04 PM
Bigcheese updated the diff for D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..
  • Remove IR parts, those will be in a separate patch.
  • Update Extensions.rst
  • Add assembly only test
May 29 2018, 4:45 PM
Bigcheese added a comment to D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..

In writing the documentation I ran into an issue defining the precise semantics of .cg_profile when it includes a symbol which has not previously been referenced. In an updated patch I'm treating it as if .weak <symbol> was written if <symbol> has not yet been used. This leads to the following behavior:

May 29 2018, 3:31 PM

May 24 2018

Bigcheese edited reviewers for D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission., added: compnerd, pcc; removed: espindola.

Adding some reviewers that last touched metadata.

May 24 2018, 3:25 PM

Apr 26 2018

Bigcheese added a comment to D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..

The MC and Object parts are enough for lld, yes.

Apr 26 2018, 4:21 PM

Apr 19 2018

Bigcheese added a child revision for D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission.: D45850: [ELF] Read the call graph profile from object files..
Apr 19 2018, 5:08 PM
Bigcheese added a parent revision for D45850: [ELF] Read the call graph profile from object files.: D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..
Apr 19 2018, 5:08 PM
Bigcheese created D45850: [ELF] Read the call graph profile from object files..
Apr 19 2018, 5:05 PM

Apr 18 2018

Bigcheese updated the diff for D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..

Previous update was missing tests. Fixed.

Apr 18 2018, 8:17 PM
Bigcheese updated the diff for D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..

I'm also updating the lld patch that reads this, will have that up shortly.

Apr 18 2018, 7:31 PM

Apr 16 2018

Bigcheese updated the diff for D36351: [lld][ELF] Add profile guided section layout.

Address review comments.

Apr 16 2018, 3:26 PM · lld

Apr 12 2018

Bigcheese added inline comments to D36351: [lld][ELF] Add profile guided section layout.
Apr 12 2018, 3:20 PM · lld
Bigcheese updated the diff for D36351: [lld][ELF] Add profile guided section layout.

Addressed review comments.

Apr 12 2018, 3:15 PM · lld

Apr 11 2018

Bigcheese updated the diff for D36351: [lld][ELF] Add profile guided section layout.

Address review comments.

Apr 11 2018, 4:19 PM · lld
Bigcheese added inline comments to D36351: [lld][ELF] Add profile guided section layout.
Apr 11 2018, 4:19 PM · lld

Apr 9 2018

Bigcheese updated the diff for D36351: [lld][ELF] Add profile guided section layout.

Address review comments.

Apr 9 2018, 12:45 PM · lld

Apr 5 2018

Bigcheese updated the diff for D36351: [lld][ELF] Add profile guided section layout.

Address review comments.

Apr 5 2018, 3:53 PM · lld
Bigcheese added inline comments to D36351: [lld][ELF] Add profile guided section layout.
Apr 5 2018, 3:52 PM · lld