Page MenuHomePhabricator

chandlerc (Chandler Carruth)Administrator
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 7 2012, 2:54 PM (353 w, 6 d)
Roles
Administrator

Recent Activity

Yesterday

chandlerc added a comment to D60914: [AliasAnalysis] AAResults preserves AAManager..

You should also update the comments on AAManager to explain this, and further add the (largely already in place) restriction that the registration functions must not be called once the AAManager is run.

Could you please elaborate on this? How/where is this restriction enforced?

Fri, Apr 19, 3:10 PM · Restricted Project
chandlerc added a comment to D60914: [AliasAnalysis] AAResults preserves AAManager..

This looks right to me. Some suggestions on comment wording only.

Fri, Apr 19, 12:29 PM · Restricted Project

Thu, Apr 18

chandlerc added inline comments to D60832: [MemorySSA] LCSSA preserves MemorySSA..
Thu, Apr 18, 11:31 PM · Restricted Project
chandlerc committed rGce3f75df1fff: [CallSite removal] Move the legacy PM, call graph, and some inliner code to… (authored by chandlerc).
[CallSite removal] Move the legacy PM, call graph, and some inliner code to…
Thu, Apr 18, 10:59 PM
chandlerc committed rL358739: [CallSite removal] Move the legacy PM, call graph, and some inliner.
[CallSite removal] Move the legacy PM, call graph, and some inliner
Thu, Apr 18, 10:59 PM
chandlerc closed D60412: [CallSite removal] Move the legacy PM, call graph, and some inliner code to `CallBase`..
Thu, Apr 18, 10:59 PM · Restricted Project
chandlerc added a comment to D60833: [MemorySSA] Teach LoopSimplify to preserve MemorySSA..

Simplify patch to preserve MemorySSA in the old pass manager only when the pass is already available (remove *require*).
New pass manager does not preserve it.

Thu, Apr 18, 4:40 PM · Restricted Project
chandlerc requested changes to D60832: [MemorySSA] LCSSA preserves MemorySSA..

Mostly questions around the AA manager preservation, see inline.

Thu, Apr 18, 4:39 PM · Restricted Project
chandlerc accepted D59723: [NewPassManager] Adding pass tuning options: loop vectorize..

LGTM with comments below addressed. All pretty minor.

Thu, Apr 18, 4:30 PM · Restricted Project

Wed, Apr 17

chandlerc added a comment to D60814: [PassBuilder] promote pass-pipeline parsing API to public.

Yeah, the array-ref API here is already pretty leaky. It'd be really nice if we could only give the callbacks the necessary APIs here, but not sure its worth building that abstraction. I think the way I'd do it is create a parser type that is only built by the PassBuilder and is passed into the callbacks. It would then have these APIs, etc. It'd also be used internally to implement the main parsing API. Thoughts?

It might be a bit conceptually cleaner, but other than renaming the object from PassBuilder to PassPipelineParser (and internally talking to PassBuilder), what would be the API difference
compared to what is being suggested here?

Wed, Apr 17, 10:39 AM · Restricted Project
chandlerc added a comment to D60814: [PassBuilder] promote pass-pipeline parsing API to public.

What is your specific usecase for this? You have a custom PassManager which can contain, e.g., a function pass pipeline?

Right. We are building our own "kinda-SCC" pass manager, which runs inlining-devirtualization iteration doing walk over functions in rather different order than current SCC does.
This pass manager right now accepts at least one function pass pipeline (and we think about adding one more), and I would like to be able to populate this pass manager from -passes.

So, I'm using a module-pipeline parsing callback:

bool parseOurPipeline(StringRef Name, ModulePassManager &PM,
                      ArrayRef<PassBuilder::PipelineElement> InnerPipeline,
                      PassBuilder &PB) {
   if (Name == "our-pass-manager") {
      FunctionPassManager SimplifyPM;
      if (auto Err = PB.parseFunctionPassPipeline(SimplifyPM, InnerPipeline, false, false))
       return false;
     PM.addPass(OurPassManager(std::move(SimplifyPM)));
     return true;
  }
}

and then

PB.registerPipelineParsingCallback(
      [&PB](StringRef Name, ModulePassManager &PM,
          ArrayRef<PassBuilder::PipelineElement> InnerPipeline) {
      return parseOurPipeline(Name, PM, InnerPipeline, PB);
     });

So thats basically a problem of introducing a custom pass manager that can be fully handled by -passes=.

I agree that it looks like exposing implementation detail.
But then, isnt passing ArrayRef<PipelineElement> to pipeline-parsing callback already exposing this implementation detail?

Wed, Apr 17, 7:55 AM · Restricted Project
chandlerc requested changes to D59918: [Attributor] Pass infrastructure and fixpoint framework.

It looks like this is a completely new approach to attribute inference compared to the post-order function atters pass?

Wed, Apr 17, 3:20 AM · Restricted Project
chandlerc requested changes to D59903: [NFC][FnAttrs] Stress tests for attribute deduction.

Generally really nice. Some suggestions on cleaning up comments and such in the tests.

Wed, Apr 17, 3:12 AM · Restricted Project
chandlerc requested changes to D60814: [PassBuilder] promote pass-pipeline parsing API to public.

FWIW, I'm not really a fan of this.

Wed, Apr 17, 2:35 AM · Restricted Project

Mon, Apr 8

chandlerc added inline comments to D59723: [NewPassManager] Adding pass tuning options: loop vectorize..
Mon, Apr 8, 2:25 PM · Restricted Project
chandlerc added a comment to D59723: [NewPassManager] Adding pass tuning options: loop vectorize..

I think the approach here looks really good. Comments below.

Mon, Apr 8, 2:17 PM · Restricted Project
chandlerc committed rG4cf5743b7784: Move the builtin headers to use the new license file header. (authored by chandlerc).
Move the builtin headers to use the new license file header.
Mon, Apr 8, 1:51 PM
chandlerc committed rC357941: Move the builtin headers to use the new license file header..
Move the builtin headers to use the new license file header.
Mon, Apr 8, 1:51 PM
chandlerc committed rL357941: Move the builtin headers to use the new license file header..
Move the builtin headers to use the new license file header.
Mon, Apr 8, 1:50 PM
chandlerc closed D60406: Move the builtin headers to use the new license file header..
Mon, Apr 8, 1:50 PM · Restricted Project, Restricted Project
chandlerc created D60412: [CallSite removal] Move the legacy PM, call graph, and some inliner code to `CallBase`..
Mon, Apr 8, 8:52 AM · Restricted Project
chandlerc created D60406: Move the builtin headers to use the new license file header..
Mon, Apr 8, 6:45 AM · Restricted Project, Restricted Project

Thu, Apr 4

chandlerc accepted D59898: [LCG] Add aliased functions as LCG roots.

LGTM!

Thu, Apr 4, 3:36 PM · Restricted Project

Fri, Mar 29

chandlerc requested changes to D59981: [SelectionDAGBuilder] Flush PendingExports before creating INLINEASM_BR node for asm goto..

While I think we should figure out how to test this, we shouldn't wait to land what seems like an important correctness fix on figuring out how to test. So mostly looking for a particular change below.

Fri, Mar 29, 12:30 AM · Restricted Project
chandlerc requested changes to D59723: [NewPassManager] Adding pass tuning options: loop vectorize..
Fri, Mar 29, 12:24 AM · Restricted Project

Wed, Mar 27

chandlerc committed rG923ff550b91e: [NewPM] Fix a nasty bug with analysis invalidation in the new PM. (authored by chandlerc).
[NewPM] Fix a nasty bug with analysis invalidation in the new PM.
Wed, Mar 27, 5:52 PM
chandlerc committed rL357137: [NewPM] Fix a nasty bug with analysis invalidation in the new PM..
[NewPM] Fix a nasty bug with analysis invalidation in the new PM.
Wed, Mar 27, 5:52 PM
chandlerc closed D59869: [NewPM] Fix a nasty bug with analysis invalidation in the new PM..
Wed, Mar 27, 5:52 PM · Restricted Project
chandlerc requested changes to D59898: [LCG] Add aliased functions as LCG roots.

Good catch!

Wed, Mar 27, 4:42 PM · Restricted Project
chandlerc added a comment to D59869: [NewPM] Fix a nasty bug with analysis invalidation in the new PM..

Anyways, this patch looks good!

Wed, Mar 27, 2:54 PM · Restricted Project
chandlerc added a comment to D59869: [NewPM] Fix a nasty bug with analysis invalidation in the new PM..

This makes complete sense to me. There is currently no way to invalidate an analysis for a specific IRUnit instance only, right? So not preserving an analysis cross-SCC will invalidate it for all?

Wed, Mar 27, 10:25 AM · Restricted Project
chandlerc updated the diff for D59869: [NewPM] Fix a nasty bug with analysis invalidation in the new PM..

Fix up the CHECK lines in my new test case.

Wed, Mar 27, 12:07 AM · Restricted Project

Tue, Mar 26

chandlerc created D59869: [NewPM] Fix a nasty bug with analysis invalidation in the new PM..
Tue, Mar 26, 11:55 PM · Restricted Project

Thu, Mar 21

chandlerc accepted D59315: [AliasAnalysis] Second prototype to cache BasicAA / anyAA state..

LGTM, thanks for all the plumbing here.

Thu, Mar 21, 4:55 PM · Restricted Project
chandlerc added a comment to D59315: [AliasAnalysis] Second prototype to cache BasicAA / anyAA state..

Just documentation tweaks....

Thu, Mar 21, 3:18 PM · Restricted Project

Mar 20 2019

chandlerc added inline comments to D58311: [MemorySSA & LoopPassManager] Enable MemorySSA as loop dependency. Update tests..
Mar 20 2019, 6:47 PM · Restricted Project
chandlerc requested changes to D59315: [AliasAnalysis] Second prototype to cache BasicAA / anyAA state..

FWIW, I really like the direction and design here. Thanks so much for pushing all of this through, I think it is a really nice generalization of the caching done by BasicAA that lets us do more and more general things of this nature.

Mar 20 2019, 6:41 PM · Restricted Project
chandlerc accepted D59151: [BasicAA] Reduce no of map searches. Assert map entry exists. [NFCI].

LGTM, really nice!

Mar 20 2019, 6:06 PM · Restricted Project

Mar 13 2019

chandlerc added inline comments to D59315: [AliasAnalysis] Second prototype to cache BasicAA / anyAA state..
Mar 13 2019, 3:59 PM · Restricted Project
chandlerc added inline comments to D59315: [AliasAnalysis] Second prototype to cache BasicAA / anyAA state..
Mar 13 2019, 1:35 PM · Restricted Project

Mar 8 2019

chandlerc added inline comments to D59151: [BasicAA] Reduce no of map searches. Assert map entry exists. [NFCI].
Mar 8 2019, 4:59 PM · Restricted Project
chandlerc added inline comments to D59143: [RegisterCoalescer] Limit the number of joins for large live interval with many valnos. .
Mar 8 2019, 1:18 PM · Restricted Project

Mar 5 2019

chandlerc added inline comments to D58998: Replace function template (plus explicit specializations) by non-template overloads..
Mar 5 2019, 2:37 PM · Restricted Project

Feb 28 2019

chandlerc added a comment to D58572: [Support] allow -stats/-time-passes reporting into a custom stream.

I do generally feel like it would be a useful and generically good direction to support the timing system having a pre-bound output stream so that it completely avoids the flag-based info output stream we currently use. It moves everything into a proper API instead of a flags based system that seems inherently hostile to more advanced users.

Feb 28 2019, 10:34 PM · Restricted Project

Feb 26 2019

chandlerc requested changes to D58374: [Clang][NewPM] Don't bail out if the target machine is empty.

Maybe update at least some of the tests using these targets to additionally run with the new pass manager explicitly enabled via flag?

Feb 26 2019, 2:42 PM · Restricted Project
chandlerc added a comment to D58694: LLVM: Optimization Pass: Function Attribute: Fix error caused by adding incompactible attribute to WriteOnly attribute of pointer argument.
In D58694#1411343, @rnk wrote:

Removing an attribute explicitly added by the user (writeonly) and replacing it with the attribute we deduced (readnone) ? That might not be the improvement we want.
A side note, but the snippet was reduced from an actual code, where the writeonly is required.

readnone on the entire function implies the input parameter isn't read, so the inferred attribute implies what was written by the user. Users write many things, but the purpose of optimization is often to replace them with better things, and I don't see how this is much different.

Feb 26 2019, 2:35 PM · Restricted Project

Feb 20 2019

chandlerc added inline comments to D58250: [AIX][CMake] Changes for building on AIX with XL and GCC.
Feb 20 2019, 2:18 AM · Restricted Project

Feb 19 2019

chandlerc accepted D58424: [NewPM] Add other sanitizers at O0.

LGTM

Feb 19 2019, 7:04 PM · Restricted Project, Restricted Project
chandlerc accepted D58399: [Inliner] Don't initialize ComputeFullInlineCost to be always true because of ORE.

LGTM (with a minor cleanup, but feel free to just submit w/ that if we're all agreeing about this direction).

Feb 19 2019, 6:44 PM · Restricted Project
chandlerc accepted D58412: [X86] Remove FeatureSlowIncDec from Sandy Bridge and later Intel Core CPUs.

I think we can consider tweaking the generic ones separately.

Feb 19 2019, 6:13 PM · Restricted Project
chandlerc added a comment to D58375: [Clang][NewPM] Disable tests that are broken under new PM.

I can understand why tests that use -O1 or -O2 would produce different results with the new pass manager, but it looks like not all the tests are like that. Do you know why those tests are failing?

For the tests that do use -O, instead of marking them unsupported, could you use -fno-experimental-new-pass-manager or something like that?

Feb 19 2019, 5:47 PM · Restricted Project
chandlerc requested changes to D58375: [Clang][NewPM] Disable tests that are broken under new PM.

Based on the -dev discussion, update once the target machine differences are addressed by mimicing the way the legacy PM works, which will hopefully restrict this similarly to what Eli is suggesting as well...

Feb 19 2019, 5:46 PM · Restricted Project
chandlerc added a comment to D57793: [NewPM][MSan] Add sanitizer at O0.

Will need to be rebased after rC353985. Should this also include tsan, unless this is just for msan specifically?

Feb 19 2019, 5:45 PM · Restricted Project
chandlerc added inline comments to D58399: [Inliner] Don't initialize ComputeFullInlineCost to be always true because of ORE.
Feb 19 2019, 4:34 PM · Restricted Project
chandlerc added inline comments to D58399: [Inliner] Don't initialize ComputeFullInlineCost to be always true because of ORE.
Feb 19 2019, 3:31 PM · Restricted Project
chandlerc added inline comments to D58399: [Inliner] Don't initialize ComputeFullInlineCost to be always true because of ORE.
Feb 19 2019, 12:14 PM · Restricted Project

Feb 18 2019

chandlerc requested changes to D58260: [INLINER] allow inlining of blockaddresses if sole uses are callbrs.
Feb 18 2019, 9:40 PM · Restricted Project
chandlerc added a comment to D57400: Add a .gitignore file to the root that ignores any files outside of the project directories..

What about using /*/ at the ignore pattern? This allows top-level files, and makes only new top-level *directories* require an ignore update. To my mind, that seems a bit more narrowly scoped and might be a bit less surprising. Thoughts?

Feb 18 2019, 9:17 PM

Feb 12 2019

chandlerc accepted D57097: Make llvm::Optional<T> trivially copyable when T is trivially copyable.

Thanks for seeing through this .... very non-trivial effort! =D Also, as I'm sure you know by now, will need to watch the bots carefully. Sadly, some may fall over.

Feb 12 2019, 11:57 PM · Restricted Project

Feb 11 2019

chandlerc committed rG9beadff6a57b: Move CFLGraph and the AA summary code over to the new `CallBase` instruction… (authored by chandlerc).
Move CFLGraph and the AA summary code over to the new `CallBase` instruction…
Feb 11 2019, 1:26 AM
chandlerc committed rL353676: Move CFLGraph and the AA summary code over to the new `CallBase`.
Move CFLGraph and the AA summary code over to the new `CallBase`
Feb 11 2019, 1:26 AM
chandlerc committed rG2d2a4359a22e: Remove `CallSite` from the CodeMetrics analysis, moving it to the new… (authored by chandlerc).
Remove `CallSite` from the CodeMetrics analysis, moving it to the new…
Feb 11 2019, 1:04 AM
chandlerc committed rG73634358a19d: Remove a declaration that is dead, and not even implemented any longer. (authored by chandlerc).
Remove a declaration that is dead, and not even implemented any longer.
Feb 11 2019, 1:03 AM
chandlerc committed rL353673: Remove `CallSite` from the CodeMetrics analysis, moving it to the new.
Remove `CallSite` from the CodeMetrics analysis, moving it to the new
Feb 11 2019, 1:03 AM
chandlerc committed rL353672: Remove a declaration that is dead, and not even implemented any longer..
Remove a declaration that is dead, and not even implemented any longer.
Feb 11 2019, 1:03 AM
chandlerc committed rCXX353669: The new file header didn't get carried over when these files were.
The new file header didn't get carried over when these files were
Feb 11 2019, 12:40 AM
chandlerc committed rCXX353668: Update some newly added files that mistakenly used the old file header.
Update some newly added files that mistakenly used the old file header
Feb 11 2019, 12:40 AM
chandlerc committed rG9d610c5a539e: The new file header didn't get carried over when these files were "moved"… (authored by chandlerc).
The new file header didn't get carried over when these files were "moved"…
Feb 11 2019, 12:40 AM
chandlerc committed rGa20f61106b8a: Update some newly added files that mistakenly used the old file header to the… (authored by chandlerc).
Update some newly added files that mistakenly used the old file header to the…
Feb 11 2019, 12:39 AM
chandlerc committed rL353669: The new file header didn't get carried over when these files were.
The new file header didn't get carried over when these files were
Feb 11 2019, 12:39 AM
chandlerc committed rL353668: Update some newly added files that mistakenly used the old file header.
Update some newly added files that mistakenly used the old file header
Feb 11 2019, 12:39 AM
chandlerc added a comment to D28248: Work around GCC PR37804.

Hey Marshall and Michael,

Feb 11 2019, 12:36 AM
chandlerc committed rG1f5550326f12: Update more files added with the old header to the new one. (authored by chandlerc).
Update more files added with the old header to the new one.
Feb 11 2019, 12:27 AM
chandlerc committed rG127252b7d95f: Update new files added to llvm-objcopy to use the new file header. (authored by chandlerc).
Update new files added to llvm-objcopy to use the new file header.
Feb 11 2019, 12:27 AM
chandlerc committed rL353667: Update more files added with the old header to the new one..
Update more files added with the old header to the new one.
Feb 11 2019, 12:27 AM
chandlerc committed rL353666: Update new files added to llvm-objcopy to use the new file header..
Update new files added to llvm-objcopy to use the new file header.
Feb 11 2019, 12:27 AM
chandlerc committed rGb53f0e1145e3: Update files that were mistakenly added with the old file header to the new one. (authored by chandlerc).
Update files that were mistakenly added with the old file header to the new one.
Feb 11 2019, 12:09 AM
chandlerc committed rG3b387a7e3cbe: Update files that were mistakenly added with the old file header. (authored by chandlerc).
Update files that were mistakenly added with the old file header.
Feb 11 2019, 12:09 AM
chandlerc committed rL353665: Update files that were mistakenly added with the old file header to the.
Update files that were mistakenly added with the old file header to the
Feb 11 2019, 12:09 AM
chandlerc committed rL353664: Update files that were mistakenly added with the old file header..
Update files that were mistakenly added with the old file header.
Feb 11 2019, 12:09 AM
chandlerc committed rLLDB353663: Update files to the new header that were incorrectly landed with the old.
Update files to the new header that were incorrectly landed with the old
Feb 11 2019, 12:04 AM
chandlerc committed rG023f999822b7: Update files to the new header that were incorrectly landed with the old one. (authored by chandlerc).
Update files to the new header that were incorrectly landed with the old one.
Feb 11 2019, 12:04 AM
chandlerc committed rL353663: Update files to the new header that were incorrectly landed with the old.
Update files to the new header that were incorrectly landed with the old
Feb 11 2019, 12:03 AM

Feb 10 2019

chandlerc committed rGdac20a82540d: [CallSite removal] Port InstSimplify over to use `CallBase` both in its… (authored by chandlerc).
[CallSite removal] Port InstSimplify over to use `CallBase` both in its…
Feb 10 2019, 11:54 PM
chandlerc committed rL353662: [CallSite removal] Port InstSimplify over to use `CallBase` both in its.
[CallSite removal] Port InstSimplify over to use `CallBase` both in its
Feb 10 2019, 11:54 PM
chandlerc committed rG751d95fb9b3d: [CallSite removal] Migrate ConstantFolding APIs and implementation to… (authored by chandlerc).
[CallSite removal] Migrate ConstantFolding APIs and implementation to…
Feb 10 2019, 11:52 PM
chandlerc committed rL353661: [CallSite removal] Migrate ConstantFolding APIs and implementation to.
[CallSite removal] Migrate ConstantFolding APIs and implementation to
Feb 10 2019, 11:51 PM
chandlerc committed rG3160734af13b: [CallSite removal] Migrate the statepoint GC infrastructure to use the… (authored by chandlerc).
[CallSite removal] Migrate the statepoint GC infrastructure to use the…
Feb 10 2019, 11:43 PM
chandlerc committed rL353660: [CallSite removal] Migrate the statepoint GC infrastructure to use the.
[CallSite removal] Migrate the statepoint GC infrastructure to use the
Feb 10 2019, 11:43 PM
chandlerc closed D56122: [CallSite removal] Migrate the statepoint GC infrastructure to use the `CallBase` class rather than `CallSite` wrappers..
Feb 10 2019, 11:43 PM · Restricted Project
Herald added a project to D56122: [CallSite removal] Migrate the statepoint GC infrastructure to use the `CallBase` class rather than `CallSite` wrappers.: Restricted Project.

LGTM w/one requested change before submit. If you strongly disagree, feel free to land and discuss afterwards. I don't want this blocked on me finding time to re-review.

Feb 10 2019, 11:41 PM · Restricted Project

Feb 8 2019

chandlerc accepted D57968: [LICM] Cap the clobbering calls in LICM..

LGTM

Feb 8 2019, 12:51 PM · Restricted Project

Feb 7 2019

chandlerc added a comment to D39111: Extensible LLVM RTTI.

Sorry this completely fell off my radar. It is back on my radar, and I'll try to get to it in the next day or two.

Feb 7 2019, 12:02 AM · Restricted Project

Feb 6 2019

chandlerc accepted D53765: [RFC prototype] Implementation of asm-goto support in LLVM.

This is looking really close. I think we should get some basic sanity checks w/ the kernel, and even if there is an obscure bug or two, land this and move to follow-up patches.

Feb 6 2019, 11:26 PM · Restricted Project
chandlerc added a comment to D57097: Make llvm::Optional<T> trivially copyable when T is trivially copyable.

I think you may be able to do this in a slightly nicer way.

Feb 6 2019, 11:15 PM · Restricted Project

Feb 5 2019

chandlerc accepted D57627: [BasicAA] Cache nonEscapingLocalObjects for alias() calls..

LGTM!

Feb 5 2019, 3:21 PM · Restricted Project

Feb 4 2019

chandlerc added inline comments to D53765: [RFC prototype] Implementation of asm-goto support in LLVM.
Feb 4 2019, 7:59 PM · Restricted Project
chandlerc added a comment to D57627: [BasicAA] Cache nonEscapingLocalObjects for alias() calls..

Just think we can poke the map a bit better here.

Feb 4 2019, 7:17 PM · Restricted Project
chandlerc added a comment to D53765: [RFC prototype] Implementation of asm-goto support in LLVM.

A few minor comments.

Feb 4 2019, 7:07 PM · Restricted Project
chandlerc added a comment to D57640: [NewPM][MSan] Add Options Handling.

Minor past-commit nit.

Feb 4 2019, 6:53 PM · Restricted Project, Restricted Project