chandlerc (Chandler Carruth)
User

Projects

User does not belong to any projects.
User Since
Jul 7 2012, 2:54 PM (242 w, 12 h)
Roles
Administrator

Recent Activity

Fri, Feb 24

chandlerc added a comment to D30062: Estimate speedup due to inlining and use that to adjust threshold..

Some initial (minor) comments. It'd also help I think to rebase this as some of the refactorings land.

Fri, Feb 24, 12:34 PM
chandlerc added a comment to D30108: Refactor code computing switch instruction cost. NFC..

There's nothing wrong with this code, but this is a refactoring that I think only makes sense in the context where you need it. As-is, it seems like unnecessarily more layers with no real benefit. Let's look at this in the end-state patch?

Fri, Feb 24, 12:20 PM
chandlerc accepted D30112: [InlineCost] Move the code in isGEPOffsetConstant to a lambda. NFC..

I'm fine if you want this in the main patch, but I actually think this makes sense as a stand-alone refactoring, so LGTM.

Fri, Feb 24, 12:17 PM

Wed, Feb 22

chandlerc added a comment to D29363: [XRAY] A Color Choosing helper for XRay Graph.

(FWIW, I like the more minimal schemes here. We have a couple of sequential ones, and a solid divergent ones. Enough to be very useful, but no more than we really have use cases for today. That part LGTM, but leaving the code review proper to others.)

Wed, Feb 22, 8:32 PM
chandlerc added inline comments to D29363: [XRAY] A Color Choosing helper for XRay Graph.
Wed, Feb 22, 4:58 PM
chandlerc added inline comments to D29363: [XRAY] A Color Choosing helper for XRay Graph.
Wed, Feb 22, 3:58 PM

Tue, Feb 21

chandlerc added a comment to D29777: [Reassociate] Convert shl by constant into multiply during tree linearization..

Some longer term comments here, but all of this seems reasonably in-line with how we currently do things in reassociate, but raises some long-standing issues in a potentially more concerning area.

Tue, Feb 21, 1:44 PM

Fri, Feb 17

chandlerc accepted D28368: Increases full-unroll threshold..

LGTM, thanks for all the analysis!

Fri, Feb 17, 6:16 PM
chandlerc added a comment to D29668: Elide argument copies during instruction selection.

FWIW, this looks fine to me with minor tweaks below. Would be great to have @MatzeB be happy as well though, this is a part of the backend I'm somewhat less familiar with.

Fri, Feb 17, 6:13 PM
chandlerc accepted D30104: Refactor instruction simplification code in visitors. NFC..

LGTM, really nice cleanup.

Fri, Feb 17, 5:57 PM
chandlerc added inline comments to D30104: Refactor instruction simplification code in visitors. NFC..
Fri, Feb 17, 2:58 PM

Thu, Feb 16

chandlerc added a comment to D30059: Refactor InlinCost.cpp in preparation for estimated speedup heuristic..

Can you split this into separate patches that do a single refactoring? (Especially considering you have the breakdown in your descirption...) That would make it easier to review for me.

Thu, Feb 16, 5:38 PM
chandlerc committed rL295394: [x86] Give this test a triple so that we don't have to cope with two.
[x86] Give this test a triple so that we don't have to cope with two
Thu, Feb 16, 5:30 PM
chandlerc committed rL295386: FileCheck-ize some tests in test/CodeGen/X86/.
FileCheck-ize some tests in test/CodeGen/X86/
Thu, Feb 16, 4:41 PM
chandlerc closed D29807: FileCheck-ize some tests in test/CodeGen/X86/ by committing rL295386: FileCheck-ize some tests in test/CodeGen/X86/.
Thu, Feb 16, 4:41 PM
chandlerc accepted D29807: FileCheck-ize some tests in test/CodeGen/X86/.

LGTM with a tiny nit pick. I'll apply the fix and submit momentarily, but mentioning it here just for posterity.

Thu, Feb 16, 4:17 PM

Wed, Feb 15

chandlerc accepted D30021: [LSR] Prevent formula with SCEVAddRecExpr type of Reg from Sibling loops.

LGTM, this seems to be an obvious fix to the bug, and exactly matches the intent from the original patch.

Wed, Feb 15, 9:35 PM
chandlerc requested changes to D29363: [XRAY] A Color Choosing helper for XRay Graph.

Sorry to jump in with a peanut gallery comment, but just wanted to push back on some of the complexity we're adding here.

Wed, Feb 15, 6:22 PM
chandlerc accepted D29925: Implement intrinsic mangling for literal struct types. Fixes PR 31921.

Okay,so i tried this on large bc files (all of clang, etc) i have around.

The amount of time spent in remangling is almost not measureable.
For clang, it claims 100 microseconds.
I'm not sure it has that kind of measurement accuracy, but i can't find a large testcase where i can measure any real amount of time spent here.

So i'm going to commit this, but we should definitely revert and try to focus it more if we do find a testcase that matters.

Wed, Feb 15, 2:51 PM
chandlerc added a comment to D30003: AssumptionCache: Disable the verifier by default, move it behind a hidden cl::opt and verify from releaseMemory()..

While i agree it's troubling, it's interesting to note that we have that behavior elsewhere.

For example memdep caches, but not in a way that invalidates fully.

Thus, opt -gvn -gvn will give different answers than opt -gvn | opt -gvn
both are "correct" answers, just the former is more conservative than the latter.

Wed, Feb 15, 2:35 PM
chandlerc added a comment to D29185: [lit] Allow llvm's build and test systems to support paths with spaces.

I would like to point out that if you proactively reject all paths with spaces, you wouldn't be able to add additional tests that would test support for paths with spaces ;-). While I agree that we should avoid spaces whenever possible, I think it would be reasonable to add tests for paths with spaces wherever we expect them to be well-supported and want to avoid regressions.

Wed, Feb 15, 11:39 AM

Tue, Feb 14

chandlerc added inline comments to D29925: Implement intrinsic mangling for literal struct types. Fixes PR 31921.
Tue, Feb 14, 10:40 PM
chandlerc added a comment to D29977: AssumptionCache: Update documentation comment..

I would still mention that deleting them is fine.

Tue, Feb 14, 6:01 PM
chandlerc added a comment to D29925: Implement intrinsic mangling for literal struct types. Fixes PR 31921.

This at least seems like a step in the right direction, so LGTM. Maybe touch base with @majnemer before landing though in case he sees something I don't.

Tue, Feb 14, 2:57 PM
chandlerc accepted D29696: Fix a bug in caller's BFI update code after inlining..

LGTM, sorry I didn't look right after you updated it!

Tue, Feb 14, 2:27 PM

Mon, Feb 13

chandlerc added inline comments to D29925: Implement intrinsic mangling for literal struct types. Fixes PR 31921.
Mon, Feb 13, 10:05 PM
chandlerc added a comment to D29668: Elide argument copies during instruction selection.

More comments...

Mon, Feb 13, 7:19 PM
chandlerc added a comment to D28404: IRGen: Add optnone attribute on function during O0.

Just to be explicit, I agree with Hal's summary. This seems like the right engineering tradeoff and I don't find anything particularly unsatisfying about it.

Mon, Feb 13, 4:02 PM
chandlerc added a comment to D29185: [lit] Allow llvm's build and test systems to support paths with spaces.

So, we have a system that does *not* handle spaces in paths well. I would really like to continue to use the more restrictive rules for lit test names.

Mon, Feb 13, 9:44 AM
chandlerc added inline comments to D29870: [InlineCost] Increase the cost of Switch.
Mon, Feb 13, 9:39 AM
chandlerc added a comment to D29890: Fix Microsoft Code Analysis warning in Hashing.h.

I don't find the code any more clear after this change, and I don't really see a realistic way future authors could (or should) continue to adhere to this kind of rule. I'm pretty strongly against contorting the code to pacify these kinds of messages... =[

Mon, Feb 13, 9:28 AM

Sat, Feb 11

chandlerc added a comment to D29870: [InlineCost] Increase the cost of Switch.

The basic reasoning makes sense to me when we do the binary search lowering. However, while you talk about simplify-cfg handling the lookup table case, this code should also respond well to the case where it will be lowered as a jump table.

Sat, Feb 11, 11:09 PM
chandlerc committed rL294888: [PM] Add devirtualization-based iteration utility into the new PM's.
[PM] Add devirtualization-based iteration utility into the new PM's
Sat, Feb 11, 9:49 PM
chandlerc closed D29853: [PM] Add devirtualization-based iteration utility into the new PM's default pipeline. by committing rL294888: [PM] Add devirtualization-based iteration utility into the new PM's.
Sat, Feb 11, 9:49 PM
chandlerc committed rL294887: [PM] Enable GlobalsAA in the new PM's pipeline by default..
[PM] Enable GlobalsAA in the new PM's pipeline by default.
Sat, Feb 11, 9:45 PM
chandlerc closed D29815: [PM] Enable GlobalsAA in the new PM's pipeline by default. by committing rL294887: [PM] Enable GlobalsAA in the new PM's pipeline by default..
Sat, Feb 11, 9:45 PM

Fri, Feb 10

chandlerc added inline comments to D29807: FileCheck-ize some tests in test/CodeGen/X86/.
Fri, Feb 10, 7:29 PM
chandlerc committed rL294810: [PM] Fix a bug in how I ported LoopDeletion to the new PM..
[PM] Fix a bug in how I ported LoopDeletion to the new PM.
Fri, Feb 10, 4:21 PM
chandlerc created D29853: [PM] Add devirtualization-based iteration utility into the new PM's default pipeline..
Fri, Feb 10, 2:49 PM
chandlerc added a comment to D29309: [PM] Add support for instrumented PGO in the new pass manager (clang-side).

FWIW, this all looks good on my end. David, does this address your concern?

Fri, Feb 10, 11:28 AM
chandlerc accepted D29308: [PM] Hook the instrumented PGO machinery in the new PM.

LGTM with a minor tweak above, feel free to just submit with that change unless you'd like to do something different.

Fri, Feb 10, 11:22 AM
chandlerc created D29815: [PM] Enable GlobalsAA in the new PM's pipeline by default..
Fri, Feb 10, 1:21 AM
chandlerc committed rL294729: [PM] Relax the patterns used in the new test I added because some.
[PM] Relax the patterns used in the new test I added because some
Fri, Feb 10, 1:00 AM
chandlerc committed rL294728: [PM] Fix a bug in the new loop PM when handling functions with no loops..
[PM] Fix a bug in the new loop PM when handling functions with no loops.
Fri, Feb 10, 12:38 AM

Thu, Feb 9

chandlerc added a comment to D29807: FileCheck-ize some tests in test/CodeGen/X86/.

Cool! More detailed comments than last time, some of which is just teaching you some of the basics of modern test hygene here. Some high level comments:

Thu, Feb 9, 7:21 PM
chandlerc added a comment to D29807: FileCheck-ize some tests in test/CodeGen/X86/.

Forgot to add llvm-commits, commenting so a message gets posted there. Sorry!

Thu, Feb 9, 7:11 PM
chandlerc added a comment to D27463: Change llvm::Regex to expose a fallible constructor..

Haven't made it all the way through, but I think it would be helpful to apply some of the comments so far across all the changes here.

Thu, Feb 9, 5:37 PM
chandlerc added inline comments to D27463: Change llvm::Regex to expose a fallible constructor..
Thu, Feb 9, 5:31 PM
chandlerc added a reviewer for D28478: Check for musl-libc's max_align_t in addition to other variants.: EricWF.

This seems good to me. Check with Eric to see if we try to test this any any specific way?

Thu, Feb 9, 5:25 PM
chandlerc resigned from D29206: [Support/ExecutionEngine] Use const void* for storing pointers-to-global..

Sorry, I really think you want Lang or someone more familiar with EE to review this...

Thu, Feb 9, 5:23 PM
chandlerc committed rL294670: [PM] Add Argument Promotion to the pass pipeline..
[PM] Add Argument Promotion to the pass pipeline.
Thu, Feb 9, 4:06 PM
chandlerc closed D29595: [PM] Add Argument Promotion to the pass pipeline. by committing rL294670: [PM] Add Argument Promotion to the pass pipeline..
Thu, Feb 9, 4:06 PM
chandlerc committed rL294667: [PM] Port ArgumentPromotion to the new pass manager..
[PM] Port ArgumentPromotion to the new pass manager.
Thu, Feb 9, 3:58 PM
chandlerc closed D29580: [PM] Port ArgumentPromotion to the new pass manager. by committing rL294667: [PM] Port ArgumentPromotion to the new pass manager..
Thu, Feb 9, 3:58 PM
chandlerc added a comment to D29580: [PM] Port ArgumentPromotion to the new pass manager..

Confirmed with Davide that this LGTM now on IRC, landing.

Thu, Feb 9, 3:50 PM
chandlerc committed rL294663: [PM/LCG] Teach LCG to support spurious reference edges..
[PM/LCG] Teach LCG to support spurious reference edges.
Thu, Feb 9, 3:41 PM
chandlerc closed D29579: [PM/LCG] Teach LCG to support spurious reference edges. by committing rL294663: [PM/LCG] Teach LCG to support spurious reference edges..
Thu, Feb 9, 3:41 PM
chandlerc committed rL294653: [PM/LCG] Teach the LazyCallGraph how to replace a function without.
[PM/LCG] Teach the LazyCallGraph how to replace a function without
Thu, Feb 9, 3:35 PM
chandlerc closed D29577: [PM/LCG] Teach the LazyCallGraph how to replace a function without disturbing the graph or having to update edges. by committing rL294653: [PM/LCG] Teach the LazyCallGraph how to replace a function without.
Thu, Feb 9, 3:35 PM
chandlerc added inline comments to D27463: Change llvm::Regex to expose a fallible constructor..
Thu, Feb 9, 3:29 PM
chandlerc accepted D29793: De-duplicate some code for creating an AARGetter suitable for the legacy PM..

Looks good!

Thu, Feb 9, 3:20 PM
chandlerc added a comment to D29577: [PM/LCG] Teach the LazyCallGraph how to replace a function without disturbing the graph or having to update edges..

Thanks all, landing!

Thu, Feb 9, 3:06 PM
chandlerc created D29790: [SCEV] Remove the walk of the entire expression subgraph on every lookup of a cached SCEV for a particular value..
Thu, Feb 9, 2:08 PM

Wed, Feb 8

chandlerc added inline comments to D29668: Elide argument copies during instruction selection.
Wed, Feb 8, 10:54 AM
chandlerc added a comment to D29696: Fix a bug in caller's BFI update code after inlining..

Nice catch and nice test case!

Wed, Feb 8, 10:44 AM
chandlerc added inline comments to D29309: [PM] Add support for instrumented PGO in the new pass manager (clang-side).
Wed, Feb 8, 10:40 AM
chandlerc added inline comments to D29308: [PM] Hook the instrumented PGO machinery in the new PM.
Wed, Feb 8, 10:38 AM
chandlerc updated the diff for D29580: [PM] Port ArgumentPromotion to the new pass manager..

Rebase now that we actually don't have grep testing here.

Wed, Feb 8, 1:17 AM
chandlerc added a comment to D29580: [PM] Port ArgumentPromotion to the new pass manager..

Still I would really like these tests to use FileCheck instead of grep and check more, but I don't think it makes sense holding a review just for that. I would like to see the output to be checked for some tests (inlined), other than that I'm fine with this patch. Thanks!

Wed, Feb 8, 1:16 AM
chandlerc committed rL294428: [ArgPromote] Delete a test that makes no sense (any more)..
[ArgPromote] Delete a test that makes no sense (any more).
Wed, Feb 8, 1:05 AM
chandlerc committed rL294426: [ArgPromote] Clean up a crash test case by rinsing it through opt,.
[ArgPromote] Clean up a crash test case by rinsing it through opt,
Wed, Feb 8, 12:59 AM
chandlerc committed rL294422: [ArgPromote] Actually add FileCheck to a test that I actually updated to.
[ArgPromote] Actually add FileCheck to a test that I actually updated to
Wed, Feb 8, 12:15 AM
chandlerc committed rL294421: [ArgPromote] Actually run FileCheck on this test. The CHECK lines are.
[ArgPromote] Actually run FileCheck on this test. The CHECK lines are
Wed, Feb 8, 12:12 AM
chandlerc added inline comments to D29577: [PM/LCG] Teach the LazyCallGraph how to replace a function without disturbing the graph or having to update edges..
Wed, Feb 8, 12:06 AM
chandlerc updated the diff for D29577: [PM/LCG] Teach the LazyCallGraph how to replace a function without disturbing the graph or having to update edges..

Rebase and address a comment from Davide.

Wed, Feb 8, 12:05 AM

Mon, Feb 6

chandlerc committed rL294275: [PM] Defend against getting slightly wrong template arguments passed.
[PM] Defend against getting slightly wrong template arguments passed
Mon, Feb 6, 7:45 PM
chandlerc committed rL294272: [IR/Analysis] Defend against getting slightly wrong template arguments.
[IR/Analysis] Defend against getting slightly wrong template arguments
Mon, Feb 6, 7:28 PM
chandlerc committed rL294271: [ADT] Defend against getting slightly wrong template arguments passed.
[ADT] Defend against getting slightly wrong template arguments passed
Mon, Feb 6, 7:26 PM
chandlerc abandoned D29426: [PM] WIP: Port ArgumentPromotion to the new pass manager..

Yes, sorry. I thought I had abandoned all of the ones superseded but I missed this one.

Mon, Feb 6, 7:15 PM
chandlerc committed rL294267: Revert r293017 and fix the actual underlying issue..
Revert r293017 and fix the actual underlying issue.
Mon, Feb 6, 6:02 PM
chandlerc committed rL294241: [SCEV] Scale back the test added in r294181 as it goes quadratic in.
[SCEV] Scale back the test added in r294181 as it goes quadratic in
Mon, Feb 6, 1:38 PM
chandlerc committed rL294235: [PM/LCG] Fix the no-asserts build after r294227. Sorry for the noise..
[PM/LCG] Fix the no-asserts build after r294227. Sorry for the noise.
Mon, Feb 6, 1:10 PM
chandlerc committed rL294227: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during.
[PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during
Mon, Feb 6, 11:49 AM
chandlerc closed D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration. by committing rL294227: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during.
Mon, Feb 6, 11:49 AM
chandlerc added a dependent revision for D29580: [PM] Port ArgumentPromotion to the new pass manager.: D29595: [PM] Add Argument Promotion to the pass pipeline..
Mon, Feb 6, 11:14 AM
chandlerc created D29595: [PM] Add Argument Promotion to the pass pipeline..
Mon, Feb 6, 11:14 AM
chandlerc created D29580: [PM] Port ArgumentPromotion to the new pass manager..
Mon, Feb 6, 2:22 AM
chandlerc added a dependent revision for D29577: [PM/LCG] Teach the LazyCallGraph how to replace a function without disturbing the graph or having to update edges.: D29579: [PM/LCG] Teach LCG to support spurious reference edges..
Mon, Feb 6, 2:17 AM
chandlerc created D29579: [PM/LCG] Teach LCG to support spurious reference edges..
Mon, Feb 6, 2:17 AM
chandlerc created D29577: [PM/LCG] Teach the LazyCallGraph how to replace a function without disturbing the graph or having to update edges..
Mon, Feb 6, 2:10 AM
chandlerc added a dependent revision for D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration.: D29577: [PM/LCG] Teach the LazyCallGraph how to replace a function without disturbing the graph or having to update edges..
Mon, Feb 6, 2:10 AM
chandlerc updated the diff for D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration..

Another update to actually remove all the support variables for maintaining an
in-flight DFS walk from the class. Somehow forgot to remove these, they're all
dead now.

Mon, Feb 6, 1:54 AM
chandlerc updated the diff for D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration..

And this time with all the crazy super-linear assertions disabled outside of
"expensive checks" mode.

Mon, Feb 6, 1:26 AM
chandlerc added a comment to D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration..

Also, some of the assertions still on by default are waay to slow for large bitcode files (and LTO), O(N^2) to O(N^4) depending on the sparseness of the graph
With https://reviews.llvm.org/P7969 disables the offending assertions in release mode (and enables them only under LLVM_EXPENSIVE_CHECKS)

Mon, Feb 6, 1:25 AM
chandlerc abandoned D29277: [PM] Port ArgumentPromotion to the new pass manager..

Marking that this is dead. I'll be sending out a fresh series of patches that take us in a different (and IMO much better) direction for argpromote...

Mon, Feb 6, 1:21 AM
chandlerc updated the diff for D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration..

Rebase and address review comments.

Mon, Feb 6, 1:20 AM
chandlerc added a comment to D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration..

Thanks, comments hopefully addressed and new patch incoming.

Mon, Feb 6, 1:20 AM
chandlerc committed rL294174: [ArgPromote] Replace all the grep-based testing with precise FileCheck.
[ArgPromote] Replace all the grep-based testing with precise FileCheck
Mon, Feb 6, 12:54 AM

Fri, Feb 3

chandlerc updated the diff for D29381: [PM/LCG] Remove the lazy RefSCC formation from the LazyCallGraph during iteration..

Update to base on plain master where it can be submitted and remove discussion
of ArgPromote. Also updated to fix a scaling issue by putting some very
expensive asserts behind the appropriate macro guard.

Fri, Feb 3, 10:56 PM

Wed, Feb 1

chandlerc created D29426: [PM] WIP: Port ArgumentPromotion to the new pass manager..
Wed, Feb 1, 2:25 PM