chandlerc (Chandler Carruth)
User

Projects

User does not belong to any projects.
User Since
Jul 7 2012, 2:54 PM (245 w, 5 d)
Roles
Administrator

Recent Activity

Today

chandlerc accepted D31286: [X86] Fix Stale SDNode use in X86ISelDAGtoDAG.

The fix seems trivial and looks good. Please submit to at least fix the crasher.

Thu, Mar 23, 7:56 AM
chandlerc added a comment to D31263: Add option to control whether llvm-pdbdump outputs in color.

I think we need something before you commit, because as it is people will be specifying --color-output unnecessarily. Even if you say "default = on" or "default = best-effort"

OK, I came up with "Override use of color (default = isatty)", which I assume should be clear enough for typical users of this tool.

I'll let it bake tonight and submit in the morning, in case Chandler or anyone else has additional ideas.

Thu, Mar 23, 3:12 AM

Yesterday

chandlerc added a comment to D31246: Send ANSI color codes only to TTYs.

But we use this to send color codes to temporary files that capture output for build systems and such when -fcolor-diagnostics is explicitly provided? (As an example...)

That's strange, because everyone I asked thought that the raw_ostream stuff already worked this way -- i.e. doesn't send color if the destination doesn't support it. Is there a currently accepted practice for writing FileCheck test against tools that output color? Should every such tool have an explicit -no-color option?

Possibly.... What's the failure?

I added some functionality to llvm-pdbdump and included a test for it that pipes the output of llvm-pdbdump through FileCheck. Worked on Windows, which doesn't use ANSI codes to achieve colors, but failed on Linux because the ANSI codes weren't expected.

I'm happy to add a -no-color option to llvm-pdbdump that I can use to make the test output consistent on all platforms if you think that's a better way to go.

Wed, Mar 22, 11:44 AM
chandlerc added a comment to D31246: Send ANSI color codes only to TTYs.

But we use this to send color codes to temporary files that capture output for build systems and such when -fcolor-diagnostics is explicitly provided? (As an example...)

That's strange, because everyone I asked thought that the raw_ostream stuff already worked this way -- i.e. doesn't send color if the destination doesn't support it. Is there a currently accepted practice for writing FileCheck test against tools that output color? Should every such tool have an explicit -no-color option?

Wed, Mar 22, 11:26 AM
chandlerc added a comment to D31246: Send ANSI color codes only to TTYs.

But we use this to send color codes to temporary files that capture output for build systems and such when -fcolor-diagnostics is explicitly provided? (As an example...)

Wed, Mar 22, 10:02 AM
chandlerc committed rL298494: Remove an overly aggressive assert in r298491 and leave a comment.
Remove an overly aggressive assert in r298491 and leave a comment
Wed, Mar 22, 3:50 AM
chandlerc committed rL298491: [nonnull] Teach Clang to attach the nonnull LLVM attribute to.
[nonnull] Teach Clang to attach the nonnull LLVM attribute to
Wed, Mar 22, 2:21 AM

Tue, Mar 21

chandlerc committed rL298434: Don't make unqualified calls to functions that could well be found via.
Don't make unqualified calls to functions that could well be found via
Tue, Mar 21, 1:28 PM
chandlerc added a comment to D30904: Allow suppressing host and target info in VersionPrinter.

I think that the idea that you propose is good, however, I think that may be better to do as a follow up. This would get the immediate benefit for the tooling, and we can work out a nicer way to expose the information to the other users. Making it something which each app does means that we would need to change all the apps as well, which would be a much larger change.

Tue, Mar 21, 1:04 PM
chandlerc added a comment to D30904: Allow suppressing host and target info in VersionPrinter.

This seems like a totally nice direction, but I wonder if I could convince you to scope creep this a bit?

Tue, Mar 21, 12:16 PM
chandlerc committed rL298382: Revert r298274: "Use pthreads for thread-local lsan allocator cache on darwin".
Revert r298274: "Use pthreads for thread-local lsan allocator cache on darwin"
Tue, Mar 21, 8:43 AM

Fri, Mar 17

chandlerc updated the diff for D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..

Update with fixes suggested in review.

Fri, Mar 17, 10:42 PM
chandlerc added a comment to D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..

Function argument order fixed.

Fri, Mar 17, 10:41 PM
chandlerc added a comment to D27114: Preserve nonnull metadata on Loads through SROA & mem2reg..

I was hoping Chandler would continue to review, but I guess I can do it.

Fri, Mar 17, 4:51 PM
chandlerc added a comment to D31102: Rename AttributeSet to AttributeList.

I think it'd be good to send a quick RFC / heads up email to the dev list about the refactorings you're planning here just so that folks know what the roadmap is. I'll review this in the mean time.

Fri, Mar 17, 2:51 PM
chandlerc added a comment to D31080: [DAG] Extract switch lowering as a spearate object NFC.
In D31080#704197, @hans wrote:

Hi Jun,

I think extracing the logic for clustering cases into jump tables, bit tests, etc. into a separate class might be a good idea, but I don't think we should extract the actual lowering parts. If the purpose of this is to expose a hook to figure out how a switch table will be lowered, the actual lowering doesn't need to happen here. The class that deals with clustering cases should not need to know about SDAGBuilder.

Fri, Mar 17, 1:38 PM

Thu, Mar 16

chandlerc added inline comments to D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..
Thu, Mar 16, 7:09 PM
chandlerc added a comment to D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..

Ping?

Thu, Mar 16, 5:55 PM
chandlerc accepted D31058: Store Arguments in a flat array instead of an iplist.

LGTM with whatever you decide about the allocator stuff.

Thu, Mar 16, 5:54 PM
chandlerc added inline comments to D31058: Store Arguments in a flat array instead of an iplist.
Thu, Mar 16, 3:45 PM
chandlerc accepted D31052: Remove getArgumentList() in favor of arg_begin(), args(), etc.

LGTM once split.

Thu, Mar 16, 3:44 PM
chandlerc added inline comments to D31058: Store Arguments in a flat array instead of an iplist.
Thu, Mar 16, 3:29 PM
chandlerc accepted D31057: Make Argument::getArgNo() constant time, not O(#args).

This seems like a very reasonable tradeoff and a clean patch. Especially reasonable given the subsequent improvements. Ship it.

Thu, Mar 16, 3:24 PM
chandlerc committed rL297940: [PM/Inliner] Fix a bug in r297374 where we would leave stale calls in.
[PM/Inliner] Fix a bug in r297374 where we would leave stale calls in
Thu, Mar 16, 3:57 AM
chandlerc committed rL297935: [PM/Inliner] Add a test case that encapsulates the core issue addressed.
[PM/Inliner] Add a test case that encapsulates the core issue addressed
Thu, Mar 16, 3:26 AM

Sun, Mar 12

chandlerc added inline comments to D30853: Improve the genericity of `llvm::enumerate()`..
Sun, Mar 12, 10:49 PM

Fri, Mar 10

chandlerc accepted D30849: Use a WeakVH for UnknownInstructions in AliasSetTracker.

Nice, I like it.

Fri, Mar 10, 5:04 PM
chandlerc added a comment to D30521: Introduce llc/ExecuteTestCommands pass.

Currently, I really don't understand why this is the right approach...

Fri, Mar 10, 11:27 AM
chandlerc updated the diff for D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..

Update to fix subtle bugs in handling arguments. Thanks to David for the review
comments that caused me to see the issue here.

Fri, Mar 10, 1:35 AM
chandlerc added inline comments to D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..
Fri, Mar 10, 1:20 AM
chandlerc added a comment to D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..

Are users allowed to call these routines with a null pointer and a non-zero size? Or can we assume that if the size is known to be non-zero at compile time, the pointers are not null?

Fri, Mar 10, 12:46 AM

Thu, Mar 9

chandlerc created D30806: [nonnull] Teach Clang to attach the nonnull LLVM attribute to declarations and calls instead of just definitions, and then teach it to *not* attach such attributes even if the source code contains them..
Thu, Mar 9, 7:59 PM
chandlerc committed rL297374: [PM/Inliner] Make the new PM's inliner process call edges across an.
[PM/Inliner] Make the new PM's inliner process call edges across an
Thu, Mar 9, 3:47 AM

Wed, Mar 8

chandlerc added a comment to D30726: Do not cache AliasSetTracker even in the old PM.

We're only caching to save on compile time, right? Is there any noticeable compile-time impact?

I'll measure.

Wed, Mar 8, 6:42 PM

Tue, Mar 7

chandlerc added a comment to D30728: CodeGen: Placement: Apply triangle heuristic more aggressively at O3..

So, this didn't go to the list. I'd abandon it and create a fresh revision with llvm-commits CC'ed directly.

Tue, Mar 7, 5:30 PM

Mon, Mar 6

chandlerc added a comment to D30651: [InlineCost, -Oz] Don't take into account the penalty of a fast call of frequently used functions.

Based on this we can expect fast calls will have minimized call overhead.

That's true, in some sense... but that's also true for the C calling convention in most cases.

If it makes no sense why functions are marked as fastcc so aggressively. I think not all calls of them can actually be made as fastcc.

It's better to think of fastcc as the default calling convention for everything where the LLVM optimizer controls the calling convention. It passes values in registers where it makes sense, and tries to strike a reasonable balance between caller-save and callee-save registers. We use it over the C calling convention where we can so that we aren't stuck doing stupid things, like passing everything on the stack on x86-32, or shuffling floating-point values between integer and VFP registers on ARM with a softfp abi. It doesn't really indicate anything about the absolute overhead of a call.

Mon, Mar 6, 1:39 PM
chandlerc added a comment to D30631: [BPI] Use metadata info before any other heuristics.

In addition to the issue David pointed out, I don't understand the motivation yet.

Mon, Mar 6, 1:18 PM
chandlerc requested changes to D30633: [BPI] Unreachable branch has 0 probability.

We intentionally didn't use zero because that seems more of a degenerate test case. What problem are you actually trying to solve here?

Mon, Mar 6, 11:50 AM

Fri, Mar 3

chandlerc committed rL296862: [SDAG] Revert r296476 (and r296486, r296668, r296690)..
[SDAG] Revert r296476 (and r296486, r296668, r296690).
Fri, Mar 3, 2:15 AM

Wed, Mar 1

chandlerc added a comment to D30309: CodeGen: BlockPlacement: Precompute layout for chains of triangles..

if BP is not correct, it is better to improve static branch prediction. We explicitly added a threshold for the cost based analysis result to kick in just to be conservative when the branch probability is not biased enough. Even for the long chain case, tail dup is enabled for 50/50 case, but the real profile is 40/60, taildup will hurt performance. I don't see the reason to by pass the branch prob + cost analysis by just looking at the shape.

Well, long chains amortize the penalty, so looking for the shape is definitely necessary.

I can adjust the static prediction if you'd like, but I have a source for the 60/40 stat:
See page 13 here:
http://digitalassets.lib.berkeley.edu/techreports/ucb/text/CSD-83-121.pdf

Wed, Mar 1, 12:23 PM

Tue, Feb 28

chandlerc committed rL296444: [IR] Add range accessors for the indices of a GEP instruction..
[IR] Add range accessors for the indices of a GEP instruction.
Tue, Feb 28, 12:16 AM

Mon, Feb 27

chandlerc accepted D30434: [LCG] Fix EXPENSIVE_CHECKS typo. NFC.

LGTM as well. Lemme know if you'd like me to land.

Mon, Feb 27, 3:59 PM

Sun, Feb 26

chandlerc added inline comments to D30062: Estimate speedup due to inlining and use that to adjust threshold..
Sun, Feb 26, 5:10 PM
chandlerc added inline comments to D30062: Estimate speedup due to inlining and use that to adjust threshold..
Sun, Feb 26, 3:02 PM

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

Feb 21 2017

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.

Feb 21 2017, 1:44 PM

Feb 17 2017

chandlerc accepted D28368: Increases full-unroll threshold..

LGTM, thanks for all the analysis!

Feb 17 2017, 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.

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

LGTM, really nice cleanup.

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

Feb 16 2017

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.

Feb 16 2017, 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
Feb 16 2017, 5:30 PM
chandlerc committed rL295386: FileCheck-ize some tests in test/CodeGen/X86/.
FileCheck-ize some tests in test/CodeGen/X86/
Feb 16 2017, 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/.
Feb 16 2017, 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.

Feb 16 2017, 4:17 PM

Feb 15 2017

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.

Feb 15 2017, 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.

Feb 15 2017, 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.

Feb 15 2017, 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.

Feb 15 2017, 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.

Feb 15 2017, 11:39 AM

Feb 14 2017

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

I would still mention that deleting them is fine.

Feb 14 2017, 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.

Feb 14 2017, 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!

Feb 14 2017, 2:27 PM

Feb 13 2017

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

More comments...

Feb 13 2017, 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.

Feb 13 2017, 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.

Feb 13 2017, 9:44 AM
chandlerc added inline comments to D29870: [InlineCost] Increase the cost of Switch.
Feb 13 2017, 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... =[

Feb 13 2017, 9:28 AM

Feb 11 2017

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.

Feb 11 2017, 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
Feb 11 2017, 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.
Feb 11 2017, 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.
Feb 11 2017, 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..
Feb 11 2017, 9:45 PM

Feb 10 2017

chandlerc added inline comments to D29807: FileCheck-ize some tests in test/CodeGen/X86/.
Feb 10 2017, 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.
Feb 10 2017, 4:21 PM
chandlerc created D29853: [PM] Add devirtualization-based iteration utility into the new PM's default pipeline..
Feb 10 2017, 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?

Feb 10 2017, 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.

Feb 10 2017, 11:22 AM
chandlerc created D29815: [PM] Enable GlobalsAA in the new PM's pipeline by default..
Feb 10 2017, 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
Feb 10 2017, 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.
Feb 10 2017, 12:38 AM

Feb 9 2017

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:

Feb 9 2017, 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!

Feb 9 2017, 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.

Feb 9 2017, 5:37 PM
chandlerc added inline comments to D27463: Change llvm::Regex to expose a fallible constructor..
Feb 9 2017, 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?

Feb 9 2017, 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...

Feb 9 2017, 5:23 PM
chandlerc committed rL294670: [PM] Add Argument Promotion to the pass pipeline..
[PM] Add Argument Promotion to the pass pipeline.
Feb 9 2017, 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..
Feb 9 2017, 4:06 PM
chandlerc committed rL294667: [PM] Port ArgumentPromotion to the new pass manager..
[PM] Port ArgumentPromotion to the new pass manager.
Feb 9 2017, 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..
Feb 9 2017, 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.

Feb 9 2017, 3:50 PM
chandlerc committed rL294663: [PM/LCG] Teach LCG to support spurious reference edges..
[PM/LCG] Teach LCG to support spurious reference edges.
Feb 9 2017, 3:41 PM