Page MenuHomePhabricator

Bigcheese (Michael Spencer)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Thu, Jun 3

Bigcheese accepted D103524: [clang][deps] Handle precompiled headers' AST files.

lgtm.

Thu, Jun 3, 9:32 AM · Restricted Project
Bigcheese accepted D103519: [clang][deps] Support object files.

lgtm

Thu, Jun 3, 9:14 AM · Restricted Project
Bigcheese accepted D103516: [clang][deps] Add argument for customizing PCM paths.

lgtm with a few minor changes.

Thu, Jun 3, 8:50 AM · Restricted Project

Wed, May 26

Bigcheese updated subscribers of D102923: [clang][lex] Remark for used header search paths.

I think this is looking good, but would like either @dexonsmith, @akyrtzi, or someone else familiar with this area to take a look. Only other comment I have is that the new functions you add should use the current LLVM naming convention.

Wed, May 26, 2:40 AM · Restricted Project

Apr 21 2021

Bigcheese accepted D100942: [clang][deps] Include "-cc1" in the arguments.

lgtm.

Apr 21 2021, 9:01 AM · Restricted Project

Apr 16 2021

Bigcheese accepted D100473: [clang] Implement CompilerInvocation copy assignment.

I think this is fine given that we already have a copy constructor with deep copy semantics.

Apr 16 2021, 8:56 AM · Restricted Project
Bigcheese accepted D100455: [clang] Rename CompilerInvocationBase to RefBase, split out ValueBase.

lgtm

Apr 16 2021, 8:46 AM · Restricted Project
Bigcheese accepted D100653: [clang][cli] NFC: Move conditional LangOptions parsing/generation.

lgtm

Apr 16 2021, 8:37 AM · Restricted Project
Bigcheese accepted D100533: [clang][deps] Remove the -full-command-line flag.

lgtm

Apr 16 2021, 8:35 AM · Restricted Project

Mar 23 2021

Bigcheese accepted D98950: [clang][deps] NFC: Document collector, rename members.

Thanks for the cleanup. Code makes more sense now.

Mar 23 2021, 8:50 AM · Restricted Project
Bigcheese accepted D98943: [clang][deps] NFC: Extract ModuleID struct.
Mar 23 2021, 8:46 AM · Restricted Project

Mar 4 2021

Bigcheese accepted D97552: [clang][cli] Fix generation of '-fvisibility' with regards to '-mignore-xcoff-visibility'.

LGTM

Mar 4 2021, 9:11 AM · Restricted Project
Bigcheese added a comment to D97702: [clang][modules] Use extensible RTTI for ModuleFileExtension.

Looks fine to me, but it would be good for a Swift person to look at this patch.

Mar 4 2021, 9:06 AM · Restricted Project

Feb 25 2021

Bigcheese accepted D97461: [clang][cli] Implement '-cuid=' marshalling.

LGTM

Feb 25 2021, 9:16 AM · Restricted Project

Feb 16 2021

Bigcheese accepted D95790: [clang][cli] Documentation of CompilerInvocation parsing/generation.

Needs an example in the "Creating new Command Line Option" section, but with that it looks good.

Feb 16 2021, 8:45 AM · Restricted Project

Feb 4 2021

Bigcheese added inline comments to D95790: [clang][cli] Documentation of CompilerInvocation parsing/generation.
Feb 4 2021, 8:55 AM · Restricted Project

Jan 28 2021

Bigcheese added a comment to D95514: [clang][cli] Teach CompilerInvocation to allocate strings on its own.

Well, the compiler developers are the users, since -cc1 isn't for end-users. I acknowledge it's a tradeoff. IMO, without actually seeing it in practice, it seems a bit nicer to design this away entirely. But maybe having a = is more valuable than I think.

For string options:

  • If -cc1 accepts only -opt string, no need for allocation.
  • If -cc1 accepts only -opt=string, the fully-spelled option is on the original command-line. ExistingStrings.find() should turn it up when calling Strings.save().
  • If -cc1 accepts both -opt=string and -opt string canonicalize to -opt string when generating. No need for allocation.

For numeric / enum options we'll need to allocate, but the allocation doesn't have to live past running the parser.

The only problem would be if string gets canonicalized / rewritten somehow during parse + generate, or if an enum value is additionally saved as a string value.

We can definitely ask around how would people feel about that.

Consider that some callers may parse the full command-line and then drop everything but one options class. That pattern wouldn’t work anymore since the StringRefs won’t be valid.

Ah, that's right. So if we don't go with the allocation-less approach, we'd need to take StringAllocator from the client that also ensures proper lifetimes.

Maybe it wouldn't be terrible to have a RoundTrip arg on each options class. When you assign to the CompilerInvocation, it copies the shared ptr into each of the options classes, so that the pool stays alive as long as one of them has it.

I think this is the most robust solution.

Moving BumpPtrAllocator/StringSaver into CompilerInvocation will become problematic once we start round-tripping more option classes.

I've looked through all option classes in CompilerInvocation, and AnalyzerOptions::Config seems to be the only member that stores non-owning references to command line arguments.
I think the best path forward is to change AnalyzerOptions to take ownership and avoid dealing with complicated lifetimes. We can look into removing allocations later, as an optional optimization.
What do you think?

Jan 28 2021, 8:42 AM · Restricted Project

Jan 26 2021

Bigcheese added a comment to D94472: [clang][cli] Command line round-trip for HeaderSearch options.

strict mode additionally uses the GeneratedArgs1 to fill CompilerInvocation, indirectly checking both directions by requiring tests to pass both with and without this round-trip. However, during development people generally only run the tests one way and the failure mode won't be ideal.

So people build without assertions during development? In that case, I agree that erroring out on GeneratedArgs1 != GeneratedArgs2 (in all kinds of builds) would improve the experience. I don't think there's anything preventing us to incorporate this into the current patch.

Jan 26 2021, 9:38 AM · Restricted Project, Restricted Project

Jan 14 2021

Bigcheese accepted D94682: [clang][cli] Parse Lang and CodeGen options separately.

LGTM.

Jan 14 2021, 9:16 AM · Restricted Project
Bigcheese accepted D94681: [clang][cli] NFC: Promote ParseLangArgs and ParseCodeGenArgs to members.

LGTM.

Jan 14 2021, 9:09 AM · Restricted Project
Bigcheese accepted D94680: [clang][cli] NFC: Parse some LangOpts after the defaults are set.

LGTM.

Jan 14 2021, 9:03 AM · Restricted Project
Bigcheese accepted D94679: [clang][cli] NFC: Add PIE parsing for precompiled input and IR.

LGTM.

Jan 14 2021, 9:01 AM · Restricted Project
Bigcheese accepted D94678: [clang][cli] Parse & generate options necessary for LangOptions defaults manually.

LGTM with the comment.

Jan 14 2021, 8:58 AM · Restricted Project
Bigcheese accepted D94676: [clang][cli] Specify KeyPath prefixes via TableGen classes.

LGTM.

Jan 14 2021, 8:53 AM · Restricted Project, Restricted Project
Bigcheese accepted D94675: [clang][cli] NFC: Decrease the scope of ParseCodeGenArgs parameters.

LGTM.

Jan 14 2021, 8:41 AM · Restricted Project
Bigcheese accepted D94674: [clang][cli] NFC: Decrease the scope of ParseLangArgs parameters.

LGTM.

Jan 14 2021, 8:39 AM · Restricted Project

Jan 5 2021

Bigcheese accepted D84674: [clang][cli] Allow users to specify a conditional to prevent parsing options with MarshallingInfo.

lgtm

Jan 5 2021, 8:57 AM · Restricted Project, Restricted Project
Bigcheese accepted D93636: [clang][cli] Implement ContainsN Google Test matcher.

We don't really have anywhere specific to put extra matchers, and we don't want to add stuff to the actual gtest folder so it's easy to merge updates. So this is fine.

Jan 5 2021, 8:49 AM · Restricted Project
Bigcheese accepted D93700: [clang][cli] Report the actual argument parsing result.

LGTM

Jan 5 2021, 8:40 AM · Restricted Project

Dec 17 2020

Bigcheese added a comment to D93395: [clang][cli] Remove -f[no-]trapping-math from -cc1 command line.

This looks fine to be as that code is definitely dead. I would wait for @SjoerdMeijer in case there's a bug in the existing code.

Dec 17 2020, 9:36 AM · Restricted Project
Bigcheese accepted D84672: [clang][cli] Port PreprocessorOpts simple string based options to new option parsing system.

lgtm

Dec 17 2020, 9:30 AM · Restricted Project
Bigcheese accepted D84671: [clang][cli] Port LangOpts simple string based options to new option parsing system.

lgtm.

Dec 17 2020, 9:27 AM · Restricted Project, Restricted Project
Bigcheese accepted D84670: [clang][cli] Port HeaderSearch simple string options to new option parsing system.

lgtm with nit.

Dec 17 2020, 9:15 AM · Restricted Project
Bigcheese accepted D84668: [clang][cli] Port TargetOpts simple string based options to new option parsing system.

lgtm with the fix above.

Dec 17 2020, 9:12 AM · Restricted Project
Bigcheese accepted D84669: [clang][cli] Port CodeGenOpts simple string flags to new option parsing system.

lgtm with the comment.

Dec 17 2020, 8:56 AM · Restricted Project

Dec 15 2020

Bigcheese accepted D93094: [clang][cli] Prevent double denormalization.

lgtm with the test fix.

Dec 15 2020, 8:52 AM · Restricted Project, Restricted Project
Bigcheese accepted D93008: [clang][cli] Do not marshall only CC1Option flags in BoolOption.

lgtm.

Dec 15 2020, 8:41 AM · Restricted Project, Restricted Project

Dec 11 2020

Bigcheese accepted D92191: [clang-scan-deps] Add support for clang-cl.

lgtm. Thanks for the patch.

Dec 11 2020, 2:51 PM · Restricted Project

Dec 9 2020

Bigcheese accepted D92857: [clang][cli] Don't always emit -f[no-]legacy-pass-manager.

LGTM. I don't see any reason to always emit this option.

Dec 9 2020, 10:23 AM · Restricted Project, Restricted Project

Dec 8 2020

Bigcheese added inline comments to D92775: [clang][cli] Add flexible TableGen multiclass for boolean options.
Dec 8 2020, 8:37 AM · Restricted Project, Restricted Project

Nov 30 2020

Bigcheese accepted D92330: [clang-scan-deps] Improve argument parsing to find target object file path..

lgtm.

Nov 30 2020, 11:16 AM · Restricted Project
Bigcheese added a reviewer for D92330: [clang-scan-deps] Improve argument parsing to find target object file path.: jansvoboda11.
Nov 30 2020, 11:13 AM · Restricted Project

Nov 24 2020

Bigcheese accepted D83698: [clang][cli] Port Target option flags to new option parsing system.

LGTM

Nov 24 2020, 9:14 AM · Restricted Project
Bigcheese added inline comments to D83211: [clang][cli] Factor out call to EXTRACTOR in generateCC1CommandLine (NFC).
Nov 24 2020, 9:06 AM · Restricted Project, Restricted Project
Bigcheese accepted D83211: [clang][cli] Factor out call to EXTRACTOR in generateCC1CommandLine (NFC).
Nov 24 2020, 8:53 AM · Restricted Project, Restricted Project

Nov 11 2020

Bigcheese added a comment to D84050: [YAMLIO] Support non-null-terminated inputs.

The parser used to rely on the \0 being present. Was that fixed?

Do you know where this assumption was? I couldn't find it, but also couldn't find any commits that seemed to "fix" it. I haven't seen a sanitizer error yet

I just did a quick scan and I can't find any such assumption either. @Bigcheese, do remember what the original intent was?

Nov 11 2020, 4:38 PM · Restricted Project

Nov 10 2020

Bigcheese accepted D82860: Port ObjCMTAction to new option parsing system.

LGTM.

Nov 10 2020, 8:58 AM · Restricted Project, Restricted Project

Nov 5 2020

Bigcheese accepted D82756: Port some floating point options to new option marshalling infrastructure.

LGTM

Nov 5 2020, 4:27 PM · Restricted Project, Restricted Project

Sep 23 2020

Bigcheese accepted D68997: Allow searching for prebuilt implicit modules..

LGTM

Sep 23 2020, 4:30 PM · Restricted Project

Aug 27 2020

Bigcheese accepted D86290: Move all fields of '-cc1' option related classes into def file databases.

lgtm.

Aug 27 2020, 10:12 AM · Restricted Project

Aug 19 2020

Bigcheese accepted D83298: Add ability to make fixups to CompilerInvocation after option parsing.

lgtm.

Aug 19 2020, 5:53 PM · Restricted Project
Bigcheese added inline comments to D83211: [clang][cli] Factor out call to EXTRACTOR in generateCC1CommandLine (NFC).
Aug 19 2020, 5:52 PM · Restricted Project, Restricted Project
Bigcheese accepted D82860: Port ObjCMTAction to new option parsing system.

lgtm

Aug 19 2020, 5:45 PM · Restricted Project, Restricted Project

Aug 14 2020

Bigcheese accepted D83071: Add support for options with two flags for controlling the same field..

lgtm

Aug 14 2020, 10:07 AM · Restricted Project, Restricted Project

Jul 30 2020

Bigcheese added inline comments to D68997: Allow searching for prebuilt implicit modules..
Jul 30 2020, 1:31 PM · Restricted Project

Jul 20 2020

Bigcheese accepted D84185: [clang][cli] Better defaults for MarshallingInfoString.

lgtm

Jul 20 2020, 10:07 AM · Restricted Project, Restricted Project

Jul 17 2020

Bigcheese committed rG7fcc1bb4b654: [clangd] Fix the build with clang <3.9. (authored by Bigcheese).
[clangd] Fix the build with clang <3.9.
Jul 17 2020, 3:14 PM
Bigcheese committed rGfda901a987dd: [Clang] Fix building with Clang < 3.9. (authored by Bigcheese).
[Clang] Fix building with Clang < 3.9.
Jul 17 2020, 12:34 PM

Jul 14 2020

GitHub <noreply@github.com> committed rG5cbb4fe23a48: Merge pull request #1327 from Bigcheese/59908962 (authored by Bigcheese).
Merge pull request #1327 from Bigcheese/59908962
Jul 14 2020, 4:54 PM
Bigcheese committed rG41745af7f7b9: [clang] Use IsVolatile=true and RequiresNullTerminator=false for PCMs (authored by Bigcheese).
[clang] Use IsVolatile=true and RequiresNullTerminator=false for PCMs
Jul 14 2020, 4:54 PM
GitHub <noreply@github.com> committed rG82811095a908: Merge pull request #1251 from Bigcheese/44987 (authored by Bigcheese).
Merge pull request #1251 from Bigcheese/44987
Jul 14 2020, 4:51 PM
Bigcheese committed rG6ffd432a8966: Use FinishThunk to finish musttail thunks (authored by rnk).
Use FinishThunk to finish musttail thunks
Jul 14 2020, 4:51 PM
GitHub <noreply@github.com> committed rG809d01c5274e: Merge pull request #1239 from Bigcheese/fix-intrin (authored by Bigcheese).
Merge pull request #1239 from Bigcheese/fix-intrin
Jul 14 2020, 4:51 PM
Bigcheese committed rGca9ed6e2fb3c: Revert "Re-fix _lrotl/_lrotr to always take Long, no matter the platform." (authored by Bigcheese).
Revert "Re-fix _lrotl/_lrotr to always take Long, no matter the platform."
Jul 14 2020, 4:51 PM
Bigcheese added a reverting change for rG92146ce399cd: Re-fix _lrotl/_lrotr to always take Long, no matter the platform.: rGca9ed6e2fb3c: Revert "Re-fix _lrotl/_lrotr to always take Long, no matter the platform.".
Jul 14 2020, 4:51 PM
GitHub <noreply@github.com> committed rG768b425799ae: Merge pull request #1129 from Bigcheese/cherry-pick-d69575 (authored by Bigcheese).
Merge pull request #1129 from Bigcheese/cherry-pick-d69575
Jul 14 2020, 4:47 PM
Bigcheese committed rG082948a2d269: Improve module.pcm lock file performance on machines with high core counts (authored by Ladd).
Improve module.pcm lock file performance on machines with high core counts
Jul 14 2020, 4:47 PM
GitHub <noreply@github.com> committed rG526621643c79: Merge pull request #1117 from Bigcheese/modules-mmap (authored by Bigcheese).
Merge pull request #1117 from Bigcheese/modules-mmap
Jul 14 2020, 4:47 PM
Bigcheese committed rGce625f14169e: [Clang] Expose RequiresNullTerminator in FileManager. (authored by Bigcheese).
[Clang] Expose RequiresNullTerminator in FileManager.
Jul 14 2020, 4:47 PM
GitHub <noreply@github.com> committed rGe3385fb7bf91: Merge pull request #880 from Bigcheese/apple/arm_acle (authored by Bigcheese).
Merge pull request #880 from Bigcheese/apple/arm_acle
Jul 14 2020, 4:32 PM
Bigcheese committed rG459ab6a9bbbc: [clang][Headers] Use __has_builtin instead of _MSC_VER. (authored by Bigcheese).
[clang][Headers] Use __has_builtin instead of _MSC_VER.
Jul 14 2020, 4:32 PM
GitHub <noreply@github.com> committed rG0066d17dac4a: Merge pull request #792 from Bigcheese/scan-deps-stable (authored by Bigcheese).
Merge pull request #792 from Bigcheese/scan-deps-stable
Jul 14 2020, 4:24 PM
Bigcheese committed rG6df82a89ea5f: [Clang][Lex] Remove debugging code. (authored by Bigcheese).
[Clang][Lex] Remove debugging code.
Jul 14 2020, 4:24 PM
Bigcheese committed rGe85477ddb3e2: [Clang][ScanDeps] Ignore __inferred_module.map dependency. (authored by Bigcheese).
[Clang][ScanDeps] Ignore __inferred_module.map dependency.
Jul 14 2020, 4:24 PM
Bigcheese committed rG2572468081c2: [Clang] Fix the header paths in `clang::Module` for inferred modules. (authored by Bigcheese).
[Clang] Fix the header paths in `clang::Module` for inferred modules.
Jul 14 2020, 4:24 PM
Bigcheese committed rG0c02ad99db51: [Clang] Allow explicitly building an inferred module. (authored by Bigcheese).
[Clang] Allow explicitly building an inferred module.
Jul 14 2020, 4:24 PM
Bigcheese committed rG008966ca2e47: [Clang][cc1] Support -fno-implicit-module-maps in -cc1. (authored by Bigcheese).
[Clang][cc1] Support -fno-implicit-module-maps in -cc1.
Jul 14 2020, 4:24 PM
Bigcheese committed rG9205e61ea88a: [Clang] Temporarily comment out assert. (authored by Bigcheese).
[Clang] Temporarily comment out assert.
Jul 14 2020, 4:24 PM
Bigcheese committed rG46cfddafe85b: [Clang][ScanDeps] Use the module map a module was inferred from for inferred… (authored by Bigcheese).
[Clang][ScanDeps] Use the module map a module was inferred from for inferred…
Jul 14 2020, 4:24 PM
Bigcheese committed rG27bc98ab34ff: [Clang][ScanDeps] Actually pass the non path command line modifications. (authored by Bigcheese).
[Clang][ScanDeps] Actually pass the non path command line modifications.
Jul 14 2020, 4:24 PM
Bigcheese committed rG7eb316817ef6: [Clang][cc1] Add -remove-preceeding-explicit-module-build-incompatible-options (authored by Bigcheese).
[Clang][cc1] Add -remove-preceeding-explicit-module-build-incompatible-options
Jul 14 2020, 4:24 PM
Bigcheese committed rGb24296d9e4be: [libclang] Add clang_Driver_getExternalActionsForCommand_v0 (authored by Bigcheese).
[libclang] Add clang_Driver_getExternalActionsForCommand_v0
Jul 14 2020, 4:24 PM
Bigcheese committed rGe7c6ab3bcd43: [clang][clang-scan-deps] Add an experimental C API. (authored by Bigcheese).
[clang][clang-scan-deps] Add an experimental C API.
Jul 14 2020, 4:24 PM
Bigcheese committed rG696e280a36dd: [Clang][ScanDeps] Pass diagnostics to `getModuleHash`. (authored by Bigcheese).
[Clang][ScanDeps] Pass diagnostics to `getModuleHash`.
Jul 14 2020, 4:24 PM
Bigcheese committed rG53947a577ead: [clang][clang-scan-deps] Aggregate the full dependency information. (authored by Bigcheese).
[clang][clang-scan-deps] Aggregate the full dependency information.
Jul 14 2020, 4:24 PM
GitHub <noreply@github.com> committed rG8bd683f83e1f: Merge pull request #754 from Bigcheese/scan-deps-stable (authored by Bigcheese).
Merge pull request #754 from Bigcheese/scan-deps-stable
Jul 14 2020, 4:22 PM
Bigcheese committed rGb429e1cf63dc: [Clang][Lex] Remove debugging code. (authored by Bigcheese).
[Clang][Lex] Remove debugging code.
Jul 14 2020, 4:22 PM
Bigcheese committed rG05bfc81f9d0a: [Clang][ScanDeps] Ignore __inferred_module.map dependency. (authored by Bigcheese).
[Clang][ScanDeps] Ignore __inferred_module.map dependency.
Jul 14 2020, 4:22 PM
Bigcheese committed rG3ddc2d4b1228: [Clang] Fix the header paths in `clang::Module` for inferred modules. (authored by Bigcheese).
[Clang] Fix the header paths in `clang::Module` for inferred modules.
Jul 14 2020, 4:22 PM
Bigcheese committed rG56ff1f1096fa: [Clang] Allow explicitly building an inferred module. (authored by Bigcheese).
[Clang] Allow explicitly building an inferred module.
Jul 14 2020, 4:22 PM
Bigcheese committed rG4876ab38323f: [Clang][cc1] Support -fno-implicit-module-maps in -cc1. (authored by Bigcheese).
[Clang][cc1] Support -fno-implicit-module-maps in -cc1.
Jul 14 2020, 4:22 PM
Bigcheese committed rG61c21390a146: [Clang] Temporarily comment out assert. (authored by Bigcheese).
[Clang] Temporarily comment out assert.
Jul 14 2020, 4:22 PM
Bigcheese committed rG4e1cda68107a: [Clang][ScanDeps] Use the module map a module was inferred from for inferred… (authored by Bigcheese).
[Clang][ScanDeps] Use the module map a module was inferred from for inferred…
Jul 14 2020, 4:22 PM
Bigcheese committed rG611489822fce: [Clang][ScanDeps] Actually pass the non path command line modifications. (authored by Bigcheese).
[Clang][ScanDeps] Actually pass the non path command line modifications.
Jul 14 2020, 4:22 PM
Bigcheese committed rGcf2048b954f8: [Clang][cc1] Add -remove-preceeding-explicit-module-build-incompatible-options (authored by Bigcheese).
[Clang][cc1] Add -remove-preceeding-explicit-module-build-incompatible-options
Jul 14 2020, 4:22 PM
Bigcheese committed rGced3ced67cd5: [libclang] Add clang_Driver_getExternalActionsForCommand_v0 (authored by Bigcheese).
[libclang] Add clang_Driver_getExternalActionsForCommand_v0
Jul 14 2020, 4:21 PM
Bigcheese committed rGe23a09ebb8d7: [clang][clang-scan-deps] Add an experimental C API. (authored by Bigcheese).
[clang][clang-scan-deps] Add an experimental C API.
Jul 14 2020, 4:21 PM
Bigcheese committed rGcd0f9c81c08e: [Clang][ScanDeps] Pass diagnostics to `getModuleHash`. (authored by Bigcheese).
[Clang][ScanDeps] Pass diagnostics to `getModuleHash`.
Jul 14 2020, 4:21 PM
Bigcheese committed rG3299f974dc3b: [clang][clang-scan-deps] Aggregate the full dependency information. (authored by Bigcheese).
[clang][clang-scan-deps] Aggregate the full dependency information.
Jul 14 2020, 4:21 PM

Jul 13 2020

Bigcheese accepted D83406: Remove NormalizerRetTy and use the decltype of the KeyPath instead.

lgtm

Jul 13 2020, 10:22 AM · Restricted Project, Restricted Project