Page MenuHomePhabricator

jmorse (Jeremy Morse)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 19 2018, 2:57 AM (131 w, 2 d)

Recent Activity

Yesterday

jmorse accepted D87494: Improve LSR debug-info.

LGTM; I guess it'd be better if SCEV exposed a helper method, rather than this patch having to expose one, but that's well out of scope.

Wed, Sep 23, 3:16 AM · Restricted Project, debug-info

Mon, Sep 21

jmorse added a comment to D87494: Improve LSR debug-info.

This is looking good, a few nits inline. Some slightly broader questions: do you know if there's any risk of debug-info affecting decisions made by SCEV, i.e. causing codegen to change when compiling -g? I don't have any reason to believe that could be the case, but it's a fear in the back of my mind.

Mon, Sep 21, 7:53 AM · Restricted Project, debug-info

Mon, Sep 14

jmorse added a comment to D85741: [DebugInstrRef][1/9] Initial fields and instruction for instruction-referencing variable locations.

Oh, one important thing: Can you add a section to the .rst documentation with a MIR example that explains what a DBG_VALUE_REF is / what it's used for, etc?

Mon, Sep 14, 2:27 AM · Restricted Project
jmorse committed rGd3af441dfeb6: [DebugInstrRef][1/9] Add fields for instr-ref variable locations (authored by jmorse).
[DebugInstrRef][1/9] Add fields for instr-ref variable locations
Mon, Sep 14, 2:21 AM
jmorse closed D85741: [DebugInstrRef][1/9] Initial fields and instruction for instruction-referencing variable locations.
Mon, Sep 14, 2:20 AM · Restricted Project

Fri, Sep 11

jmorse committed rG0825fa952681: [LiveDebugValues][NFC] Add additional tests (authored by jmorse).
[LiveDebugValues][NFC] Add additional tests
Fri, Sep 11, 7:35 AM
jmorse committed rG0caeaff12376: [LiveDebugValues][NFC] Re-land 60db26a66d, add instr-ref tests (authored by jmorse).
[LiveDebugValues][NFC] Re-land 60db26a66d, add instr-ref tests
Fri, Sep 11, 4:15 AM
jmorse committed rG82390454f0c4: [DFSan] XFail a test that's suffering too much optimization (authored by jmorse).
[DFSan] XFail a test that's suffering too much optimization
Fri, Sep 11, 3:26 AM

Thu, Sep 10

jmorse updated the diff for D86812: [DebugInstrRef][1/3] Track PHI values through register allocation.

Revise some dodgy comments, cheers!

Thu, Sep 10, 9:09 AM · Restricted Project
jmorse updated the summary of D86814: [DebugInstrRef][3/3] Follow DBG_PHI instructions through LiveDebugValues..
Thu, Sep 10, 9:06 AM · Restricted Project
jmorse updated the diff for D86814: [DebugInstrRef][3/3] Follow DBG_PHI instructions through LiveDebugValues..

Address the loop matter I mention at the end of the review summary -- I've convinced myself that we only need to validate very simple loops in this context, because LLVMs tail-duplicator doesn't substantially rewrite functions, it only duplicates bits of it.

Thu, Sep 10, 9:01 AM · Restricted Project
jmorse updated the summary of D86813: [DebugInstrRef][2/3] Track PHI values through register coalescing.
Thu, Sep 10, 8:57 AM · Restricted Project
jmorse updated the diff for D86812: [DebugInstrRef][1/3] Track PHI values through register allocation.

Address comments; add a test for creating DBG_PHIs for PHIs that happen in spill slots.

Thu, Sep 10, 4:55 AM · Restricted Project

Fri, Aug 28

jmorse requested review of D86814: [DebugInstrRef][3/3] Follow DBG_PHI instructions through LiveDebugValues..
Fri, Aug 28, 1:39 PM · Restricted Project
jmorse requested review of D86813: [DebugInstrRef][2/3] Track PHI values through register coalescing.
Fri, Aug 28, 1:26 PM · Restricted Project
jmorse requested review of D86812: [DebugInstrRef][1/3] Track PHI values through register allocation.
Fri, Aug 28, 1:21 PM · Restricted Project

Wed, Aug 26

jmorse added a reverting change for rG60db26a66d53: [LiveDebugValues][NFC] Add instr-ref tests, adapt old tests: rG5b9c2b1bea78: Revert "[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests".
Wed, Aug 26, 9:20 AM
jmorse committed rG5b9c2b1bea78: Revert "[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests" (authored by jmorse).
Revert "[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests"
Wed, Aug 26, 9:20 AM
jmorse added a reverting change for D83054: [LiveDebugValues] 4/4 Initial test changes for InstrRef LiveDebugValues: rG5b9c2b1bea78: Revert "[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests".
Wed, Aug 26, 9:20 AM · debug-info, Restricted Project
jmorse added a comment to D83054: [LiveDebugValues] 4/4 Initial test changes for InstrRef LiveDebugValues.

Thanks to all the reviewers in this series for their time!

Wed, Aug 26, 8:50 AM · debug-info, Restricted Project
jmorse committed rG60db26a66d53: [LiveDebugValues][NFC] Add instr-ref tests, adapt old tests (authored by jmorse).
[LiveDebugValues][NFC] Add instr-ref tests, adapt old tests
Wed, Aug 26, 8:34 AM
jmorse closed D83054: [LiveDebugValues] 4/4 Initial test changes for InstrRef LiveDebugValues.
Wed, Aug 26, 8:34 AM · debug-info, Restricted Project

Tue, Aug 25

jmorse committed rG121a49d839d7: [LiveDebugValues] Add switches for using instr-ref variable locations (authored by jmorse).
[LiveDebugValues] Add switches for using instr-ref variable locations
Tue, Aug 25, 6:59 AM
jmorse closed D83048: [LiveDebugValues] 3/4 Add Xclang and CodeGen options for using instr-ref variable locations.
Tue, Aug 25, 6:59 AM · debug-info, Restricted Project, Restricted Project

Aug 22 2020

jmorse committed rG93af37043b9c: Follow-up build fix for rGae6f78824031 (authored by jmorse).
Follow-up build fix for rGae6f78824031
Aug 22 2020, 11:10 AM
jmorse committed rGae6f78824031: [LiveDebugValues] Add instruction-referencing LDV implementation (authored by jmorse).
[LiveDebugValues] Add instruction-referencing LDV implementation
Aug 22 2020, 10:32 AM
jmorse closed D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.
Aug 22 2020, 10:32 AM · debug-info, Restricted Project
jmorse committed rG2d9be9e31852: Fix some builds after 20bb9fe565a (authored by jmorse).
Fix some builds after 20bb9fe565a
Aug 22 2020, 7:21 AM
jmorse committed rG20bb9fe565ab: [LiveDebugValues] Install an implementation-picking LiveDebugValues pass (authored by jmorse).
[LiveDebugValues] Install an implementation-picking LiveDebugValues pass
Aug 22 2020, 6:52 AM
jmorse closed D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.
Aug 22 2020, 6:52 AM · debug-info, Restricted Project
jmorse added a comment to D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.

NB: landing now-ish as recent feedback is all nits, and in the "main" patch (D83047) we've come to the conclusion that this should land guarded by an experimental switch (which is what this patch does).

Aug 22 2020, 6:09 AM · debug-info, Restricted Project
jmorse committed rGfba06e3c85aa: [LiveDebugValues][NFC] Move LiveDebugValues source for refactor (authored by jmorse).
[LiveDebugValues][NFC] Move LiveDebugValues source for refactor
Aug 22 2020, 5:39 AM
jmorse closed D83304: [LiveDebugValues][NFC] 0/4 Move LiveDebugValues source file ahead of refactor.
Aug 22 2020, 5:39 AM · Restricted Project

Aug 21 2020

jmorse updated the diff for D85775: [DebugInstrRef][9/9] Handle DBG_INSTR_REFs use-before-defs in LiveDebugValues.

Rebase to account for some whitespace differences.

Aug 21 2020, 1:27 PM · Restricted Project
jmorse updated the diff for D85771: [DebugInstrRef][8/9] Convert DBG_INSTR_REFs into variable locations.

Early-exit to avoid un-necessary indentation.

Aug 21 2020, 1:17 PM · Restricted Project
jmorse added inline comments to D85771: [DebugInstrRef][8/9] Convert DBG_INSTR_REFs into variable locations.
Aug 21 2020, 8:37 AM · Restricted Project
jmorse updated the diff for D85771: [DebugInstrRef][8/9] Convert DBG_INSTR_REFs into variable locations.

Remove some needless comments and some needless curly braces.

Aug 21 2020, 8:35 AM · Restricted Project

Aug 20 2020

jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

Since I'm also dealing with some cognitive overload at the moment, I'm pragmatically going to agree!

Aug 20 2020, 11:50 AM · debug-info, Restricted Project
jmorse updated the diff for D85756: [DebugInstrRef][5/9] Substitute debug value numbers to handle optimisations.

Rebase for rG60433c63acb7 touching something near this patch, no real change.

Aug 20 2020, 8:40 AM · Restricted Project
jmorse updated the diff for D83048: [LiveDebugValues] 3/4 Add Xclang and CodeGen options for using instr-ref variable locations.

Add a test for the driver -Xclang option. As far as I understand this, we're just checking that the switch is accepted by the driver, not that it does anything in particular (please correct me if I'm wrong).

Aug 20 2020, 7:31 AM · debug-info, Restricted Project, Restricted Project
jmorse updated the diff for D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.

Address @djtodoro 's comments (remove header, add C++ indicator, clang-format).

Aug 20 2020, 7:01 AM · debug-info, Restricted Project

Aug 19 2020

jmorse updated the diff for D85756: [DebugInstrRef][5/9] Substitute debug value numbers to handle optimisations.

Add another call to substituteDebugValuesForInst that I missed (line 681).

Aug 19 2020, 2:51 AM · Restricted Project

Aug 18 2020

jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.
In D83047#2208102, @vsk wrote:

Hi @jmorse, thanks for the updates on the DbgValue::{Proposed,NoVal} scheme.

I'm having trouble paging in enough of the DBG_INSTR_REF patch queue to continue giving meaningful review. I'm not sure the traditional review process is a great fit for this, since the changes are at a prototype stage. Perhaps we might be better served by landing things as they are, as a separate code path guarded behind a cl::opt? This would allow more people to test and contribute patches. Wdyt? (cc @aprantl @davide)

Aug 18 2020, 9:16 AM · debug-info, Restricted Project

Aug 12 2020

jmorse updated subscribers of D85555: [InstCombine] Remove dbg.values describing contents of dead allocas.

NB: on the topic of LowerDbgDeclare, it was discussed extensively in PR34136 (CC @rnk) , and there's actually a plan for eliminating its behaviour there [0] from about two years ago, which we were eventually going to look at (CC @chrisjackson).

Aug 12 2020, 9:26 AM · Restricted Project
jmorse added a comment to D84113: [Debuginfo] (1/8) [DW_OP_implicit_pointer/second strategy] Support for DW_OP_LLVM_implicit_pointer.

No real additional comments on this or the 2nd patch -- for further progress though I think you need to stimulate some discussion in the llvm-dev "DW_OP_implicit_pointer design/implementation in general" thread, to convince David / Adrian that this patch series addresses their concerns from the earlier discussion.

Aug 12 2020, 8:54 AM · debug-info, Restricted Project
jmorse added a comment to D85756: [DebugInstrRef][5/9] Substitute debug value numbers to handle optimisations.

I wrote:

were this series to land today, there would be some variable locations dropped

Aug 12 2020, 3:30 AM · Restricted Project
jmorse added a comment to D85756: [DebugInstrRef][5/9] Substitute debug value numbers to handle optimisations.

Are there other targets that also need to be updated?

Aug 12 2020, 3:24 AM · Restricted Project
jmorse added inline comments to D85760: [DebugInstrRef][7/9] NFC: Separate collection of machine/variable values.
Aug 12 2020, 2:46 AM · Restricted Project
jmorse updated the diff for D85760: [DebugInstrRef][7/9] NFC: Separate collection of machine/variable values.

Switch a loop to being ranged-based.

Aug 12 2020, 2:46 AM · Restricted Project

Aug 11 2020

jmorse requested review of D85775: [DebugInstrRef][9/9] Handle DBG_INSTR_REFs use-before-defs in LiveDebugValues.
Aug 11 2020, 1:02 PM · Restricted Project
jmorse requested review of D85771: [DebugInstrRef][8/9] Convert DBG_INSTR_REFs into variable locations.
Aug 11 2020, 12:48 PM · Restricted Project
jmorse requested review of D85760: [DebugInstrRef][7/9] NFC: Separate collection of machine/variable values.
Aug 11 2020, 10:56 AM · Restricted Project
jmorse requested review of D85757: [DebugInstrRef][6/9] Pass DBG_INSTR_REFs safely through register allocation.
Aug 11 2020, 10:19 AM · Restricted Project
jmorse requested review of D85756: [DebugInstrRef][5/9] Substitute debug value numbers to handle optimisations.
Aug 11 2020, 10:11 AM · Restricted Project
jmorse requested review of D85749: [DebugInstrRef][4/9] Support recording of instruction reference substitutions.
Aug 11 2020, 9:32 AM · Restricted Project
jmorse requested review of D85747: [DebugInstrRef][3/9] Create DBG_INSTR_REFs in SelectionDAG.
Aug 11 2020, 9:25 AM · Restricted Project
jmorse requested review of D85746: [DebugInstrRef][2/9] Parse debug instruction-references from/to MIR.
Aug 11 2020, 9:12 AM · Restricted Project
jmorse requested review of D85741: [DebugInstrRef][1/9] Initial fields and instruction for instruction-referencing variable locations.
Aug 11 2020, 8:45 AM · Restricted Project

Aug 10 2020

jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.
In D83047#2208102, @vsk wrote:

I'm having trouble paging in enough of the DBG_INSTR_REF patch queue to continue giving meaningful review. I'm not sure the traditional review process is a great fit for this, since the changes are at a prototype stage. Perhaps we might be better served by landing things as they are, as a separate code path guarded behind a cl::opt? This would allow more people to test and contribute patches. Wdyt? (cc @aprantl @davide)

Aug 10 2020, 2:45 PM · debug-info, Restricted Project

Aug 7 2020

jmorse updated the diff for D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

Here's the latest revision; in this change I've suppressed use of the "zero LocIdx": all location indexes now mean the same thing. I've done this by scattering Optional around a variety of places. There's still one rough edge, which is that the IndexedMaps in MLocTracker want a reserved value to signify a mapping that doesn't exist -- I've added an "illegal" maximally-valued LocIdx for that, which is only ever generated inside the IndexedMap. This too could be eliminated by using a std::map instead, if we're aiming for complete clean-ness at this stage.

Aug 7 2020, 8:41 AM · debug-info, Restricted Project

Jul 30 2020

jmorse added a comment to D84120: [Debuginfo] (8/N) Support for DW_OP_implicit_pointer for named and unnamed variables (second strategy)..

I see what seem to be changes to codegen here (see inline comments), is that intentional? And if so, why is that needed for DW_OP_LLVM_explicit_pointer to work?

Jul 30 2020, 6:09 AM · Restricted Project, debug-info
jmorse added a comment to D84119: [Debuginfo] (7/N) Support for DW_OP_implicit_pointer for named and unnamed variables (second strategy)..

Suggested on llvm-dev: I reckon you also need to add logic to the ConvertDebugDeclareToDebugValue helpers too, or otherwise factor them in. This patch only covers the two fast-cases that mem2reg considers, single store allocas and single block allocas, I believe (98%) everything else goes through ConvertDebugDeclareToDebugValue.

Jul 30 2020, 6:04 AM · Restricted Project, debug-info
jmorse added a comment to D84118: [Debuginfo] (6/N) Support for DW_OP_implicit_pointer for named and unnamed variables (second strategy)..

Could you elaborate on why module-level information needs to be preserved? As mentioned on llvm-dev, I think you might have missed a place where promotion from stack to SSA/values happens -- IMHO we shouldn't add module-level debuginfo-tracking unless it's absolutely necessary.

Jul 30 2020, 5:58 AM · debug-info, Restricted Project
jmorse added a comment to D84115: [Debuginfo] (3/N) Support for DW_OP_implicit_pointer for named and unnamed variables (second strategy)..

I sense this is the bulk of the work; and it looks good. I've posted on llvm-dev asking whether the creation of artificial variables could instead be deferred til DWARF emission. That'll avoid anything having to deal with a new form of DBG_VALUE, and us having to think about their lifetimes. Plus, there's greater scope for de-duplication, as I understand it this patch will generate a new artificial variable for each dbg.value, for each level of indirection.

Jul 30 2020, 5:46 AM · debug-info, Restricted Project
jmorse added a comment to D84114: [Debuginfo] (2/8) [DW_OP_implicit_pointer/second strategy] Support for DW_OP_LLVM_explicit_pointer..

Similar story to the parent patch, could you put a file-comment into the test explaining it's a round-trip test?

Jul 30 2020, 5:39 AM · Restricted Project, debug-info
jmorse added a comment to D84113: [Debuginfo] (1/8) [DW_OP_implicit_pointer/second strategy] Support for DW_OP_LLVM_implicit_pointer.

Hi @alok, would you be able to re-title the reviews in this stack to indicate what's in the patch itself? That'll make it easier to navigate.

Jul 30 2020, 5:38 AM · debug-info, Restricted Project

Jul 27 2020

jmorse updated the diff for D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

Misery: unfortunately diff 280460 undid the contents of the previous revision (adding isPHI helpers etc). This latest update restores that work -- please diff between this update (280920) and 280205 to see the vlocJoin rework. Sorry for the extra bother.

Jul 27 2020, 7:55 AM · debug-info, Restricted Project

Jul 24 2020

jmorse updated the diff for D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

Here's the correction for vlocJoin. Note that I've added tests in D83054 as they're not runnable from this patch (ooof).

Jul 24 2020, 7:37 AM · debug-info, Restricted Project
jmorse updated the diff for D83054: [LiveDebugValues] 4/4 Initial test changes for InstrRef LiveDebugValues.

Add three new tests of interesting (TM) LiveDebugValues input, which I'll refer to in D83047:

Jul 24 2020, 7:17 AM · debug-info, Restricted Project

Jul 23 2020

jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

[Bah, comments didn't get submitted]

Jul 23 2020, 1:17 PM · debug-info, Restricted Project
jmorse updated the diff for D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

Thanks for all the input -- this update addresses more of the feedback so far, although I've left a few things for future update(s). As mentioned above, there's some sketchyness with vlocJoin, which I now have a fix for, which I'll hopefully fold into this revision today or tomorrow.

Jul 23 2020, 11:25 AM · debug-info, Restricted Project

Jul 15 2020

jmorse added a comment to D83561: [ScheduleDAG] Move DBG_VALUEs after first term forward..

Should be a matter of

Jul 15 2020, 11:34 AM · Restricted Project

Jul 14 2020

Artem Dergachev <adergachev@apple.com> committed rGf88c884362d6: [analyzer] decode() a bytes object to make Python3 happy (authored by jmorse).
[analyzer] decode() a bytes object to make Python3 happy
Jul 14 2020, 4:40 PM
jmorse added a comment to D83561: [ScheduleDAG] Move DBG_VALUEs after first term forward..

(Drive-by review) Thanks for the patch -- it looks good, and generating legal machine code is definitely better than illegal,

Jul 14 2020, 11:31 AM · Restricted Project
jmorse updated subscribers of D83561: [ScheduleDAG] Move DBG_VALUEs after first term forward..
Jul 14 2020, 10:55 AM · Restricted Project
jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

On the topic of this implementation in general: the more I look at the vlocJoin method, the more I'm convinced it's incorrect. While it does produce an identical binary when stage2 building clang, I think it's only correctly dealing with the kind of control flow that C/C++ produces. If you expose it to weirder control flow, like these MIR files:

Jul 14 2020, 10:48 AM · debug-info, Restricted Project
jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

On the topic of entry values, I believe the value based tracking should make identifying entry values trivial -- all entry value numbers will be identifiable (as a ValueIDNum) with "BlockNo=0" and "InstNo="0", indicating a value defined before the first instruction of the first block. Ideally, the logic would be after machine-value-numbers and variable-values are propagated, when final locations are picked, and would look like this:

  • This variables value is an entry value (BlockNo=0,InstNo=0),
  • That value isn't available in any machine location right now
  • I will emit a DBG_VALUE containing a DW_OP_LLVM_entry_value expression.

Right now I've got some extra work on this (InstrRefBasedLDV) patch to be done, more on that shortly, and a patch series adding some initial DBG_INSTR_REF support to upload. I should be able to prod the entry-value situation after that.

Jul 14 2020, 10:09 AM · debug-info, Restricted Project

Jul 8 2020

jmorse committed rGb9d977b0ca60: [DWARF] Add cuttoff guarding quadratic validThroughout behaviour (authored by jmorse).
[DWARF] Add cuttoff guarding quadratic validThroughout behaviour
Jul 8 2020, 2:31 AM
jmorse closed D83236: [DWARF] Add cutoff guarding validThroughout to avoid near-quadratic behaviour.
Jul 8 2020, 2:31 AM · Restricted Project

Jul 7 2020

jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.
In D83047#2133722, @vsk wrote:

Thanks for this, Jeremy. It'll take me multiple passes to page all of this in. I hope to get to the core algorithm changes in my next review. In the interest of getting some feedback to you sooner rather than later, I've included some minor suggestions and questions inline.

Jul 7 2020, 9:19 AM · debug-info, Restricted Project
jmorse updated the diff for D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.
  • Replace a std::pair with a DbgValueProperties class,
  • Replace some Densemaps of LocIdx with std::map, for initial cleanliness,
  • Rename ValueRec to DbgValue and make two exclusive fields a union,
  • Use an Optional<ValueIDNum> instead of in-band signalling when it's an invalid result,
  • Address additional assorted feedback.
Jul 7 2020, 9:18 AM · debug-info, Restricted Project
Herald added a project to D83304: [LiveDebugValues][NFC] 0/4 Move LiveDebugValues source file ahead of refactor: Restricted Project.
Jul 7 2020, 6:59 AM · Restricted Project
jmorse updated the diff for D83048: [LiveDebugValues] 3/4 Add Xclang and CodeGen options for using instr-ref variable locations.

(Rebase, only affecting LiveDebugValues.cpp)

Jul 7 2020, 6:46 AM · debug-info, Restricted Project, Restricted Project
jmorse updated the diff for D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

(Rebasing, only affects LiveDebugValues.h)

Jul 7 2020, 6:44 AM · debug-info, Restricted Project
jmorse updated the diff for D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.

Move include to start of file; was on autopilot sorry.

Jul 7 2020, 6:28 AM · debug-info, Restricted Project
jmorse added a comment to D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.

Thanks for the feedback,

Jul 7 2020, 4:59 AM · debug-info, Restricted Project
jmorse updated the diff for D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.

clang-format, add file headers, address some review comments

Jul 7 2020, 4:58 AM · debug-info, Restricted Project
jmorse added a comment to D83236: [DWARF] Add cutoff guarding validThroughout to avoid near-quadratic behaviour.

Could the algorithm be changed to do validThroughout of all variable fragments in a single pass together?

Jul 7 2020, 4:32 AM · Restricted Project

Jul 6 2020

Herald added a project to D83236: [DWARF] Add cutoff guarding validThroughout to avoid near-quadratic behaviour: Restricted Project.
Jul 6 2020, 9:17 AM · Restricted Project

Jul 2 2020

jmorse added inline comments to D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.
Jul 2 2020, 8:37 AM · debug-info, Restricted Project
jmorse added a comment to D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.

NB: in D83054 I've added livedebugvalues_many_loop_heads.mir which contains a worked example (aka pathological input) that exercises the lattice-descent code for machine value numbers. It's definitely the ugliest part.

Jul 2 2020, 8:05 AM · debug-info, Restricted Project
jmorse created D83054: [LiveDebugValues] 4/4 Initial test changes for InstrRef LiveDebugValues.
Jul 2 2020, 8:05 AM · debug-info, Restricted Project
jmorse created D83048: [LiveDebugValues] 3/4 Add Xclang and CodeGen options for using instr-ref variable locations.
Jul 2 2020, 7:31 AM · debug-info, Restricted Project, Restricted Project
jmorse created D83047: [LiveDebugValues] 2/4 Add instruction-referencing LiveDebugValues implementation.
Jul 2 2020, 6:57 AM · debug-info, Restricted Project
jmorse created D83046: [LiveDebugValues] 1/4 Install an implementation-picking LiveDebugValues pass.
Jul 2 2020, 6:57 AM · debug-info, Restricted Project

Jun 25 2020

jmorse added a comment to D82129: [DebugInfo] Drop location ranges for variables which exist entirely outside the variable's scope.

Paul wrote:

And yet, the variable was allocated to a register, and the variable's location information pointed to the correct instruction range.
Inadequacies in our ability to represent the scope properly shouldn't cause us to eliminate *correct* location information for variables.

Jun 25 2020, 2:11 PM · debug-info, Restricted Project

Jun 23 2020

jmorse added a comment to D82129: [DebugInfo] Drop location ranges for variables which exist entirely outside the variable's scope.

FWIW: I'd enjoy this patch landing. AFAIUI there's no meaningful information communicated to the DWARF consumers by out-of-scope ranges (even if it indicates a compiler bug somewhere), and we may as well save them disk space and debugger-load-time.

Jun 23 2020, 6:53 AM · debug-info, Restricted Project

Jun 18 2020

jmorse accepted D81198: [docs] Specify rules for updating debug locations.

For the record, this all LGTM.

Jun 18 2020, 10:18 AM · Restricted Project
jmorse accepted D81319: [Dexter] Add --source-dir-root flag.

(Ah yeah, Tom is away for a bit),

Jun 18 2020, 9:13 AM · debug-info, Restricted Project
jmorse committed rG3626eba11f23: [NFC][LiveDebugValues] Document how LiveDebugValues operates (authored by jmorse).
[NFC][LiveDebugValues] Document how LiveDebugValues operates
Jun 18 2020, 3:15 AM