Page MenuHomePhabricator

Bigcheese (Michael Spencer)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Today

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

Mon, Jun 17

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.

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

Also adding the llvm-commits list.

Mon, Jun 17, 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.

Mon, Jun 17, 1:27 PM

Mon, Jun 10

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

LGTM

Mon, Jun 10, 3:33 PM · Restricted Project

Fri, May 31

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.

Fri, May 31, 10:54 AM · Restricted Project

Wed, May 29

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

Thanks for finding this!

Wed, May 29, 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.

Wed, May 29, 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.

Wed, May 29, 2:16 PM · Restricted Project

Tue, May 28

Bigcheese committed rG7e48b406ef5e: [Driver] Fix -working-directory issues (authored by Bigcheese).
[Driver] Fix -working-directory issues
Tue, May 28, 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

Apr 2 2018

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

Address review comments.

Apr 2 2018, 5:17 PM · lld

Mar 29 2018

Bigcheese abandoned D42161: Add Call Graph Profile pass and ELF assembly support.
Mar 29 2018, 12:46 PM
Bigcheese updated the diff for D36351: [lld][ELF] Add profile guided section layout.

Address review comments.

Mar 29 2018, 11:36 AM · lld
Bigcheese added inline comments to D36351: [lld][ELF] Add profile guided section layout.
Mar 29 2018, 11:35 AM · lld

Mar 28 2018

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

Address review comments.

Mar 28 2018, 1:56 PM · lld

Mar 27 2018

Bigcheese created D44965: [llvm][Instrumentation/MC] Add Call Graph Profile pass and object file emission..
Mar 27 2018, 5:11 PM

Mar 26 2018

Bigcheese created D44910: [docs] Add Markdown support to Sphinx.
Mar 26 2018, 2:58 PM

Mar 22 2018

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

Apply review comments.

Mar 22 2018, 5:09 PM · lld

Mar 7 2018

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

Address review comments.

Mar 7 2018, 8:03 PM · lld

Mar 5 2018

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

Rewrote the algorithm to match hfsort. Now gets the same performance as hfsort in Rafael's testcase.

Mar 5 2018, 10:43 AM · lld

Mar 1 2018

Bigcheese added a comment to D43988: Fix processing of path names in response files on Windows.

I don't think this is a right thing to do because creating a Windows executable doesn't necessarily mean that you are doing it on Command Prompt and vice versa. clang and lld support --rsp-quoting={windows,posix} to explicitly tell the driver how to parse response files. Didn't that work for you?

Mar 1 2018, 6:04 PM
Bigcheese added a comment to D43988: Fix processing of path names in response files on Windows.

LLVM's tools do not have a standard way to indicate the response file quoting style.

But if there was a problem that we had to fix by adding --rsp-quoting option, that will become a problem with this patch, no?

Mar 1 2018, 6:03 PM
Bigcheese added a reviewer for D43989: MRI delete command: rafael.

I'm not sure about this one. I've added Rafael as a reviewer as he's on the blame for most of this code.

Mar 1 2018, 5:32 PM
Bigcheese accepted D43987: Fix ar command line expansion on Windows..

This is good, but this should be using llvm-ar's failIfError instead of adding ExitOnError. Moving the error handling to ExitOnError should be a separate commit if done.

Mar 1 2018, 5:15 PM
Bigcheese accepted D43986: Allow MRI scripts as file input on cmd line.

lgtm.

Mar 1 2018, 5:01 PM

Feb 19 2018

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

ping

Feb 19 2018, 8:46 PM
Bigcheese added a comment to D43158: [RISCV] Always emit a symbol for R_RISCV_PCREL_LO12_I..

ping

Feb 19 2018, 8:46 PM

Feb 10 2018

Bigcheese created D43158: [RISCV] Always emit a symbol for R_RISCV_PCREL_LO12_I..
Feb 10 2018, 3:21 AM
Bigcheese created D43157: [RISCV] Properly evaluate VK_RISCV_PCREL_LO.
Feb 10 2018, 3:16 AM

Feb 8 2018

Bigcheese updated the diff for D36351: [lld][ELF] Add profile guided section layout.
  • Update to top of tree.
  • Add some comments.
Feb 8 2018, 6:06 PM · lld
Bigcheese accepted D43102: Refactor how we decide which sections to sort.

Seems fine and removes the duplication of names. My only concern is mixing --symbol-ordering-file with call graph sort in buildSectionOrder. Currently in the patch call graph sorting is applied then the order file. With this the two would need to be mixed into a single DenseMap, or the loop would need to be duplicated (which is what the patch currently does).

Feb 8 2018, 5:47 PM

Feb 7 2018

Bigcheese created D43038: [ELF] Don't sort non reorderable sections with --symbol-ordering-file.
Feb 7 2018, 1:03 PM · lld