Page MenuHomePhabricator

jmorse (Jeremy Morse)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Today

jmorse added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

I suppose that this is ready to land?

Tue, May 21, 5:55 AM · debug-info
jmorse added inline comments to D61940: [DebugInfo] Don't always extend variable locations when the reg location is unchanging.
Tue, May 21, 5:55 AM · Restricted Project
jmorse updated the diff for D61940: [DebugInfo] Don't always extend variable locations when the reg location is unchanging.

Apply review comments (change a vector size, shuffle the order of some blocks).

Tue, May 21, 5:34 AM · Restricted Project

Fri, May 17

jmorse added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

Nikola mentioned in D61890 that the changes to fission-ranges.ll result in reduced variable location ranges, which is unfortunate. IMO, eyeballing the test, I think the input IR we have at the moment is wrong, and it was only the bug that this patch fixes that caused us to get the output right.

Fri, May 17, 10:06 AM · debug-info
jmorse added a comment to D61890: [LiveDebugValues] End variable's range with multiple locations at block entry.

The reason I offered this patch as a alternative to D61600 is that it degrades some ranges when it could leave them wider (test/DebugInfo/X86/fission-ranges.ll).

Fri, May 17, 10:00 AM · debug-info
jmorse accepted D61600: [DebugInfo] More precise variable range for stack locations.

LGTM (I think I can approve?). The source IR needing no-frame-pointer-elim seems like enough reason to keep that attribute around.

Fri, May 17, 9:10 AM · debug-info

Thu, May 16

jmorse retitled D61940: [DebugInfo] Don't always extend variable locations when the reg location is unchanging from [WIP][DebugInfo] Don't always extend variable locations when the reg location is unchanging to [DebugInfo] Don't always extend variable locations when the reg location is unchanging.
Thu, May 16, 4:57 AM · Restricted Project
jmorse updated the diff for D61940: [DebugInfo] Don't always extend variable locations when the reg location is unchanging.

Update diff to more production-ised version, will edit summary and add reviewers shortly

Thu, May 16, 4:15 AM · Restricted Project

Wed, May 15

jmorse created D61940: [DebugInfo] Don't always extend variable locations when the reg location is unchanging.
Wed, May 15, 5:10 AM · Restricted Project
jmorse added a child revision for D61600: [DebugInfo] More precise variable range for stack locations: D61940: [DebugInfo] Don't always extend variable locations when the reg location is unchanging.
Wed, May 15, 5:10 AM · debug-info
jmorse added a comment to D61600: [DebugInfo] More precise variable range for stack locations.

Just to note: the patch this is based on (r359426) was reverted in r360301 due to compile time issues. I've got a patch incoming (tomorrow) that relies on this patch to fix it: they'll need to be un-reverted / committed in a certain order and possibly all together. (We can work through that when this is approved though).

Wed, May 15, 4:09 AM · debug-info
jmorse added a comment to D61890: [LiveDebugValues] End variable's range with multiple locations at block entry.

Hmmm, I get what the patch is doing, but I have the feeling that it might be the wrong place (or impossible) to fix in LiveDebugValues. Given the sample source in dbg-live-debug-values-end-range.mir, would I be right in thinking that this patch is to fix the ChangingRegs behaviour that David brought up in [0]?

Wed, May 15, 4:05 AM · debug-info

Fri, May 10

jmorse added inline comments to D59272: [DebugInfo] Select debug intrinsic line-numbers more carefully when promoting dbg.declare.
Fri, May 10, 3:15 AM · Restricted Project
jmorse committed rGa2b780b73196: [DebugInfo] Use zero linenos for debug intrinsics when promoting dbg.declare (authored by jmorse).
[DebugInfo] Use zero linenos for debug intrinsics when promoting dbg.declare
Fri, May 10, 3:02 AM
jmorse committed rL360415: [DebugInfo] Use zero linenos for debug intrinsics when promoting dbg.declare.
[DebugInfo] Use zero linenos for debug intrinsics when promoting dbg.declare
Fri, May 10, 3:01 AM
jmorse closed D59272: [DebugInfo] Select debug intrinsic line-numbers more carefully when promoting dbg.declare.
Fri, May 10, 3:01 AM · Restricted Project

Wed, May 8

jmorse abandoned D61198: [IRBuilder][DebugInfo] Don't pick DebugLocs for new instructions from debug intrinsics.

For some reason I hadn't clocked that the IRBuilder deals with blocks in a state of partial construction/correctness (duh), and had assumed there would always be a terminator in each block, whoops.

Wed, May 8, 6:55 AM · Restricted Project
jmorse updated the diff for D59272: [DebugInfo] Select debug intrinsic line-numbers more carefully when promoting dbg.declare.

Add comment explaining the choice of zero line numbers in getDebugValueLoc. After discussion in D61198, I've removed the clause preserving the line numbers of store instructions -- It's probably better to make it clear that the line number information in debug intrinsics is completely meaningless, and thus not try to preserve it at all. The selection of a zero line number is thus just a defence against leaky optimisations.

Wed, May 8, 6:33 AM · Restricted Project
jmorse updated the diff for D61181: [WIP][DebugInfo] Avoid SelectionDAG un-necessarily debug-referring to dead VRegs.

Remove an accidental isIndirect=true flag, my bad.

Wed, May 8, 5:49 AM · Restricted Project
jmorse updated the diff for D61181: [WIP][DebugInfo] Avoid SelectionDAG un-necessarily debug-referring to dead VRegs.

Scatter comments / address review

Wed, May 8, 4:18 AM · Restricted Project

Tue, May 7

jmorse added inline comments to D61600: [DebugInfo] More precise variable range for stack locations.
Tue, May 7, 9:04 AM · debug-info

Tue, Apr 30

jmorse committed rG562f5f04f516: Update checks in an instcombine test, NFC (authored by jmorse).
Update checks in an instcombine test, NFC
Tue, Apr 30, 3:57 AM
jmorse committed rL359549: Update checks in an instcombine test, NFC.
Update checks in an instcombine test, NFC
Tue, Apr 30, 3:56 AM

Mon, Apr 29

jmorse committed rG055aee1d8a75: [DebugInfo] Terminate more location-list ranges at the end of blocks (authored by jmorse).
[DebugInfo] Terminate more location-list ranges at the end of blocks
Mon, Apr 29, 2:12 AM
jmorse committed rL359426: [DebugInfo] Terminate more location-list ranges at the end of blocks.
[DebugInfo] Terminate more location-list ranges at the end of blocks
Mon, Apr 29, 2:12 AM
jmorse closed D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.
Mon, Apr 29, 2:12 AM · debug-info, Restricted Project

Fri, Apr 26

jmorse updated the diff for D61198: [IRBuilder][DebugInfo] Don't pick DebugLocs for new instructions from debug intrinsics.

Add the test change I forgot to stage (whoops) -- the AMDGPU test here doesn't have any non-meta instructions with line numbers. Prior to this patch the debug intrinsic line numbers leak in, which the test depends on. Fix this by giving the real instructions line numbers. (The test is for placement of dbg.values rather than line numbers anyway).

Fri, Apr 26, 9:59 AM · Restricted Project
jmorse added a comment to D59272: [DebugInfo] Select debug intrinsic line-numbers more carefully when promoting dbg.declare.

Ping; I've uploaded D61198 which likely eliminates the lions share of DebugLocs-leaking-from-DbgIntrinsics. This patch would still be required however to reduce the damage from other scenarios where DebugLocs leak from debug intrinsics.

Fri, Apr 26, 9:52 AM · Restricted Project
jmorse created D61198: [IRBuilder][DebugInfo] Don't pick DebugLocs for new instructions from debug intrinsics.
Fri, Apr 26, 9:46 AM · Restricted Project
jmorse added a comment to D56151: [DebugInfo] PR40010: Avoid register coalesing altering DBG_VALUE valuations.

Hi, I've uploaded D61181 with a patch that might fix those regressions -- if you happen to have any spare cycles for evaluating it that'd be appreciated.

Fri, Apr 26, 4:00 AM
jmorse created D61181: [WIP][DebugInfo] Avoid SelectionDAG un-necessarily debug-referring to dead VRegs.
Fri, Apr 26, 4:00 AM · Restricted Project
jmorse added inline comments to D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.
Fri, Apr 26, 2:36 AM · debug-info, Restricted Project
jmorse updated the diff for D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.

Rename variable, improve comment, sprinkle a little clang-format.

Fri, Apr 26, 2:34 AM · debug-info, Restricted Project

Thu, Apr 25

jmorse updated the diff for D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.

I've rebased this patch to be based on r358073, Davids improvements to DbgEntityHistoryCalculator. Rather than tracking non-register DBG_VALUEs separately, this patch now iterates over all open DBG_VALUE ranges and either terminates the constant ones, or clobbers the register ones. This should be the same behaviour as the previous patch.

Thu, Apr 25, 9:02 AM · debug-info, Restricted Project

Wed, Apr 24

jmorse added a comment to D56151: [DebugInfo] PR40010: Avoid register coalesing altering DBG_VALUE valuations.

NB: I've written up a sort of broad-ish summary of what's wrong with the SelectionDAG scheduling of DBG_VALUEs in PR41583 [0], which IMO is the cause of the unfortunate variable-location droppage described above. I've got an additional patch that should go up tomorrow.

Wed, Apr 24, 9:30 AM

Apr 15 2019

jmorse committed rG7a112c44ff41: [Docs] Switch a code block from LLVM to text (authored by jmorse).
[Docs] Switch a code block from LLVM to text
Apr 15 2019, 3:25 AM
jmorse committed rL358391: [Docs] Switch a code block from LLVM to text.
[Docs] Switch a code block from LLVM to text
Apr 15 2019, 3:25 AM
jmorse committed rG38c1bda9f640: [Docs] Correct some indentation muppetry that trips buildbots (authored by jmorse).
[Docs] Correct some indentation muppetry that trips buildbots
Apr 15 2019, 3:04 AM
jmorse committed rL358388: [Docs] Correct some indentation muppetry that trips buildbots.
[Docs] Correct some indentation muppetry that trips buildbots
Apr 15 2019, 3:03 AM
jmorse added a comment to D59790: [DebugInfo][Docs] Document how variable location metadata is transformed through target codegen.

Thanks for the all the reviews; still outstanding is the dbg.declares-get-stashed-in-MF-objects matter, which I'll generate a follow-up for.

Apr 15 2019, 2:43 AM · Restricted Project
jmorse committed rG38803920c49c: [DebugInfo][Docs] Document variable location metadata transformations (authored by jmorse).
[DebugInfo][Docs] Document variable location metadata transformations
Apr 15 2019, 2:42 AM
jmorse committed rL358385: [DebugInfo][Docs] Document variable location metadata transformations.
[DebugInfo][Docs] Document variable location metadata transformations
Apr 15 2019, 2:42 AM
jmorse closed D59790: [DebugInfo][Docs] Document how variable location metadata is transformed through target codegen.
Apr 15 2019, 2:42 AM · Restricted Project

Apr 12 2019

jmorse committed rG32afe6a1f8a5: [DebugInfo] Fix pr41175 Dead Store Elimination missing debug loc (authored by jmorse).
[DebugInfo] Fix pr41175 Dead Store Elimination missing debug loc
Apr 12 2019, 2:46 AM
jmorse committed rL358270: [DebugInfo] Fix pr41175 Dead Store Elimination missing debug loc.
[DebugInfo] Fix pr41175 Dead Store Elimination missing debug loc
Apr 12 2019, 2:46 AM
jmorse closed D60556: [DebugInfo@O2] Fix pr41175 Dead Store Elimination missing debug loc.
Apr 12 2019, 2:46 AM · Restricted Project, debug-info
jmorse added a comment to D60556: [DebugInfo@O2] Fix pr41175 Dead Store Elimination missing debug loc.

(I'll commit)

Apr 12 2019, 2:11 AM · Restricted Project, debug-info

Apr 9 2019

jmorse added inline comments to D59790: [DebugInfo][Docs] Document how variable location metadata is transformed through target codegen.
Apr 9 2019, 4:49 AM · Restricted Project
jmorse updated the diff for D59790: [DebugInfo][Docs] Document how variable location metadata is transformed through target codegen.

Many thanks for the reviews, I've juggled the text in the first third in response to comments,

Apr 9 2019, 4:49 AM · Restricted Project

Mar 27 2019

jmorse added a comment to D56151: [DebugInfo] PR40010: Avoid register coalesing altering DBG_VALUE valuations.

Maybe ISel should have put the COPY to %0 after the last DBG_VALUE (now we got a dbg-use of %15 after the last non-dbg-use of %15). Or maybe it should have used %0 instead of %15 in that DBG_VALUE. Or maybe there should be one DBG_VALUE before the COPY using %15 and one after using %0.

Mar 27 2019, 5:21 AM

Mar 26 2019

jmorse accepted D59807: Fix nondeterminism introduced in r353954.

LGTM, many thanks for the find and fix!

Mar 26 2019, 3:30 AM · Restricted Project

Mar 25 2019

jmorse added a comment to D56151: [DebugInfo] PR40010: Avoid register coalesing altering DBG_VALUE valuations.

Ping on this -- I think we all agree that this is a part of a large issue (DBG_VALUEs of non-live variables), but this patch is a step in the right direction.

Mar 25 2019, 1:23 PM
jmorse created D59790: [DebugInfo][Docs] Document how variable location metadata is transformed through target codegen.
Mar 25 2019, 12:09 PM · Restricted Project
jmorse added a comment to D57694: [DebugInfo][DAG] Either salvage dangling debug info or emit Undef DBG_VALUEs.

Switching it to a MapVector makes it deterministic. I was just struggling late last night to try to reduce the .ll file down to something worth checking in! If you want to take over to minimize the test case, that would be much appreciated. Let me know so I can continue doing that if needed. Thanks.

Mar 25 2019, 8:39 AM · Restricted Project
jmorse added a comment to D59272: [DebugInfo] Select debug intrinsic line-numbers more carefully when promoting dbg.declare.

Isn't there a risk that this (partially) is hiding bugs in some other passes, where the DebugLoc is picked from the wrong place. I guess that either it should be picked from an adjacent non-meta instruction. Or it should be set to unknown.
With this patch we only eliminate the risk that the faulty passes are picking an "incorrect" DebugLoc from a dbg.value intrinsic (or DBG_VALUE instruction). But the "faulty" pass could still pick incorrect DebugLoc from other instructions, right? Or is it always correct to take the DebugLoc from all other non-dbg.value instructions, including all other kinds of meta-instructions?

Might be hard to find all such bugs. But with your known examples it shouldn't be too hard to find at least some places in opt/llc where the DebugLoc from the dbg.value is infecting some other instruction. Then perhaps we want to land this patch as well, just do avoid some not-yet-detected problems.

Mar 25 2019, 7:40 AM · Restricted Project
jmorse added a comment to D57694: [DebugInfo][DAG] Either salvage dangling debug info or emit Undef DBG_VALUEs.

This patch appears to generate non-reproducible builds in some cases. I can craft a more minimal test case, but the following link (https://godbolt.org/z/sWucUZ) is what I have been using. If I run Clang multiple times, the output eventually swaps the order of some undef DEBUG_VALUE's. I am just passing "-O1 -g" with that .ii file. It isn't obvious to me yet what is causing this to be unordered/non-deterministic.

Mar 25 2019, 4:21 AM · Restricted Project
jmorse added a comment to D58453: [DebugInfo][CGP] Limit placeDbgValues movement of dbg.value intrinsics.

this could land right now.

Mar 25 2019, 3:21 AM · Restricted Project
jmorse added a comment to D58453: [DebugInfo][CGP] Limit placeDbgValues movement of dbg.value intrinsics.

What is the status regarding this patch? Are we waiting for something?

Mar 25 2019, 3:19 AM · Restricted Project

Mar 22 2019

jmorse added inline comments to D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.
Mar 22 2019, 9:08 AM · debug-info, Restricted Project

Mar 21 2019

jmorse added a comment to D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.

So I guess the answer to my question whether this is indicative of a bug in an earlier pass is: not necessarily.

Mar 21 2019, 4:26 AM · debug-info, Restricted Project

Mar 19 2019

jmorse added a comment to D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.

Isn't that a symptom of previous passes failing to insert a dbg.value(undef) when they deleted a dbg.value? I'm trying to figure out what a legitimate example for this would look like.

Mar 19 2019, 1:46 PM · debug-info, Restricted Project

Mar 15 2019

jmorse created D59431: [DebugInfo] Terminate more kinds of location-list ranges at the end of basic blocks.
Mar 15 2019, 1:12 PM · debug-info, Restricted Project

Mar 14 2019

jmorse updated the diff for D59272: [DebugInfo] Select debug intrinsic line-numbers more carefully when promoting dbg.declare.

Update to use unknown-locations for everything but promoted store instructions,

Mar 14 2019, 7:49 AM · Restricted Project

Mar 13 2019

jmorse added a comment to D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.

Many thanks for the reviews!

Mar 13 2019, 4:43 AM · Restricted Project
jmorse committed rG66943c32d2ad: [DebugInfo][Docs] Document how dbg.value intrinsics are interpreted in… (authored by jmorse).
[DebugInfo][Docs] Document how dbg.value intrinsics are interpreted in…
Mar 13 2019, 4:43 AM
jmorse committed rL356041: [DebugInfo][Docs] Document how dbg.value intrinsics are interpreted in….
[DebugInfo][Docs] Document how dbg.value intrinsics are interpreted in…
Mar 13 2019, 4:43 AM
jmorse closed D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.
Mar 13 2019, 4:43 AM · Restricted Project

Mar 12 2019

jmorse created D59272: [DebugInfo] Select debug intrinsic line-numbers more carefully when promoting dbg.declare.
Mar 12 2019, 1:20 PM · Restricted Project
jmorse added a comment to D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.

Ping -- AFAIUI we're happy with the meaning in this patch, wording and presentation still needs review?

Mar 12 2019, 8:45 AM · Restricted Project

Mar 11 2019

jmorse committed rG90ede5f4bfe6: [SimplifyCFG] Retain debug info when threading jumps with critical edges (authored by jmorse).
[SimplifyCFG] Retain debug info when threading jumps with critical edges
Mar 11 2019, 9:26 AM
jmorse committed rL355833: [SimplifyCFG] Retain debug info when threading jumps with critical edges.
[SimplifyCFG] Retain debug info when threading jumps with critical edges
Mar 11 2019, 9:26 AM
jmorse closed D59206: [SimplifyCFG] Retain debug info when threading jumps with critical edges.
Mar 11 2019, 9:25 AM · Restricted Project
jmorse committed rGb60aea41315c: [JumpThreading] Retain debug info when replacing branch instructions (authored by jmorse).
[JumpThreading] Retain debug info when replacing branch instructions
Mar 11 2019, 4:49 AM
jmorse committed rL355822: [JumpThreading] Retain debug info when replacing branch instructions.
[JumpThreading] Retain debug info when replacing branch instructions
Mar 11 2019, 4:48 AM
jmorse closed D58963: [JumpThreading] Retain debug info when replacing branch instructions.
Mar 11 2019, 4:47 AM · Restricted Project

Mar 8 2019

jmorse requested review of D58238: [DebugInfo] MachineSink: Insert undef DBG_VALUEs when sinking instructions, try to forward copies.

Yes, I was just thinking out loud about sinking/scheduling in general and not so much the specific situation with MachineSink. But I also wondered if the sinking done by MachineSink could be seen as a special case of sinking in general, where we sink one instruction at a time. For MachineSink we eventually reach the end of the BB, and then continue into a successor. So how do we determine when it is time to insert "undef" when sinking one instruction at a time? What kind of reorderings should/shouldn't trigger that we insert an "undef"? I guess this is one thing we should try to describe in the documentation (also for DGB_VALUE), to make sure new developers understand the basic logic behind how we implement these things.

Mar 8 2019, 2:49 AM · Restricted Project

Mar 7 2019

jmorse added a comment to D58238: [DebugInfo] MachineSink: Insert undef DBG_VALUEs when sinking instructions, try to forward copies.

I produced another patch (D59027, work-in-progress) that only creates undef DBG_VALUEs when the order of assignments would change... however I then realised I'd misunderstood Bjorns question here:

Mar 7 2019, 3:47 AM · Restricted Project

Mar 6 2019

jmorse created D59027: [WIP][DebugInfo] When sinking DBG_VALUEs, only insert undef DBG_VALUEs if sinking would re-order assignments.
Mar 6 2019, 8:44 AM · Restricted Project

Mar 4 2019

jmorse added inline comments to D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.
Mar 4 2019, 6:06 AM · Restricted Project
jmorse updated the diff for D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.

Re-think opening of paragraph on the risks involved when moving/altering code.

Mar 4 2019, 6:02 AM · Restricted Project
jmorse updated the diff for D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.

Incorporate further wording and structure feedback

Mar 4 2019, 5:57 AM · Restricted Project
jmorse committed rG09d8ea528250: [X86] Avoid codegen changes when DBG_VALUE appears between lowered selects (authored by jmorse).
[X86] Avoid codegen changes when DBG_VALUE appears between lowered selects
Mar 4 2019, 2:55 AM
jmorse committed rL355307: [X86] Avoid codegen changes when DBG_VALUE appears between lowered selects.
[X86] Avoid codegen changes when DBG_VALUE appears between lowered selects
Mar 4 2019, 2:55 AM
jmorse closed D58672: [X86] Avoid codegen changes when DBG_VALUE appears between lowered selects.
Mar 4 2019, 2:55 AM · Restricted Project

Mar 1 2019

jmorse updated the diff for D58672: [X86] Avoid codegen changes when DBG_VALUE appears between lowered selects.

Incorporate recommendations on using auto from Andrea, delivered offline,

Mar 1 2019, 8:53 AM · Restricted Project
jmorse added a comment to D58831: [DebugInfo] Ignore bitcasts when lowering stack arg dbg.values.

LGTM, although I'll wait a bit for more opinions

Mar 1 2019, 8:08 AM · Restricted Project, debug-info
jmorse updated the diff for D58672: [X86] Avoid codegen changes when DBG_VALUE appears between lowered selects.

Incorporate feedback: use skipDebugInstructionsForward for better readability, iterate forwards when sinking DBG_VALUEs.

Mar 1 2019, 7:49 AM · Restricted Project
jmorse updated the diff for D56151: [DebugInfo] PR40010: Avoid register coalesing altering DBG_VALUE valuations.

Rename new test case's file name, move it to the 'DebugInfo' directory too as that seems more appropriate.

Mar 1 2019, 7:18 AM
jmorse updated the diff for D58403: [DebugInfo][CGP] Update dbg.values when updating memory address computations.

Avoid relying on placeDbgValues for this change. We already walk (forwards) through all instructions in a block looking to optimise them, add a dbg.value visitor that rewrites the dbg.value operand if it refers to a sunk address computation.

Mar 1 2019, 7:10 AM · Restricted Project
jmorse added inline comments to D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.
Mar 1 2019, 4:53 AM · Restricted Project
jmorse updated the diff for D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.

Sprinkle some possessive apostrophes, speling, incorrect variable names

Mar 1 2019, 4:53 AM · Restricted Project
jmorse added inline comments to D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.
Mar 1 2019, 4:29 AM · Restricted Project
jmorse updated the diff for D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.

Apply review feedback, re-write the dbg.value undef example to better demonstrate the problem at hand.

Mar 1 2019, 4:29 AM · Restricted Project

Feb 27 2019

jmorse added a comment to D58453: [DebugInfo][CGP] Limit placeDbgValues movement of dbg.value intrinsics.

I've generated a short summary in https://reviews.llvm.org/D58726 which illustrates how I believe dbg.values are to be interpreted -- I'll chuck this at llvm-dev tomorrow if it's not obviously broken. As mentioned in the summary, it's likely that more could be said, but getting agreement on the location of a dbg.value being the location that an assignment ``happens'' would be good.

Feb 27 2019, 9:49 AM · Restricted Project
jmorse created D58726: [DebugInfo][Docs] Explicitly document how dbg.value intrinsics are interpreted in optimized code.
Feb 27 2019, 9:48 AM · Restricted Project

Feb 26 2019

jmorse created D58672: [X86] Avoid codegen changes when DBG_VALUE appears between lowered selects.
Feb 26 2019, 6:05 AM · Restricted Project

Feb 25 2019

jmorse added a comment to D58453: [DebugInfo][CGP] Limit placeDbgValues movement of dbg.value intrinsics.

Hi Paul,

Feb 25 2019, 1:12 PM · Restricted Project

Feb 22 2019

jmorse planned changes to D58238: [DebugInfo] MachineSink: Insert undef DBG_VALUEs when sinking instructions, try to forward copies.

So then we should check if there is any other dbg.value that we sink past? Otherwise there won't be any reordering and no need for an undef location?

Feb 22 2019, 5:44 AM · Restricted Project
jmorse added a comment to D58453: [DebugInfo][CGP] Limit placeDbgValues movement of dbg.value intrinsics.

In my view, the real problem as stated in the PR appears to be that the value later gets *lost*, sadly before the instructions directly related to the switch-case where the variable is used; the real problem is *not* that the value's description starts too soon.

So given all that, how does this patch help address the real problem?

Feb 22 2019, 5:02 AM · Restricted Project
jmorse added inline comments to D58453: [DebugInfo][CGP] Limit placeDbgValues movement of dbg.value intrinsics.
Feb 22 2019, 3:56 AM · Restricted Project