Page MenuHomePhabricator

krisb (Kristina Bessonova)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 1 2018, 11:54 PM (225 w, 10 h)

Recent Activity

Wed, May 25

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

OK, so if I want to reproduce the issue for you, I need to apply these three patches? D114705 D113741 D113743

You, likely, not need D113743 (it'd been reverted just after being committed, so it seems it couldn't be the guilty one).

Wed, May 25, 1:53 PM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

There is an alternative implementation that relies on addition field of DISubprogram/DILexicalScope that tracks static locals, local imports and types D125693.

Ah, OK - so that 5-part sequence is an alternative to this one?

Mostly. The alternative implementation reuses large part of work of this patch.
Basically, this first implementation has (had) 3 patches in sequence:

  • D114705 (moving handling of globals, types and imports from beginModule() to endModule() in DwarfDebug.cpp)
  • D113741 (this one, backend's part)
  • D113743 (clang's part)
Wed, May 25, 9:43 AM · Restricted Project, debug-info, Restricted Project

Mon, May 23

krisb added a comment to D125693: [DebugInfo][WIP] Support types, imports and static locals declared in a lexical block (3/5).

Thank you, @asavonic for your comments!

Mon, May 23, 5:13 AM · debug-info, Restricted Project, Restricted Project, Restricted Project
krisb updated the summary of D125693: [DebugInfo][WIP] Support types, imports and static locals declared in a lexical block (3/5).
Mon, May 23, 4:02 AM · debug-info, Restricted Project, Restricted Project, Restricted Project
krisb updated the diff for D125691: [DebugInfo][WIP] Add localDecls field to DISubprogram and DILexicalBlock (1/5).

Fix comment.

Mon, May 23, 3:35 AM · debug-info, Restricted Project, Restricted Project
krisb updated the summary of D125691: [DebugInfo][WIP] Add localDecls field to DISubprogram and DILexicalBlock (1/5).
Mon, May 23, 3:15 AM · debug-info, Restricted Project, Restricted Project

Tue, May 17

krisb added inline comments to D124982: [clang][OpenMP][DebugInfo] Debug support for variables in containing scope of OMP constructs.
Tue, May 17, 3:11 AM · Restricted Project, Restricted Project, Restricted Project, debug-info

Mon, May 16

krisb abandoned D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.

Split on two: D125694 and D125695.

Mon, May 16, 8:45 AM · Restricted Project, debug-info, Restricted Project
krisb added a project to D125695: [clang][DebugInfo] Allow function-local type-like entities to be scoped within a lexical block (5/5): debug-info.
Mon, May 16, 8:44 AM · debug-info, Restricted Project, Restricted Project
krisb requested review of D125695: [clang][DebugInfo] Allow function-local type-like entities to be scoped within a lexical block (5/5).
Mon, May 16, 8:44 AM · debug-info, Restricted Project, Restricted Project
krisb added a project to D125694: [clang][DebugInfo] Allow function-local statics to be scoped within a lexical block (4/5): debug-info.
Mon, May 16, 8:42 AM · debug-info, Restricted Project, Restricted Project
krisb requested review of D125694: [clang][DebugInfo] Allow function-local statics to be scoped within a lexical block (4/5).
Mon, May 16, 8:42 AM · debug-info, Restricted Project, Restricted Project
krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

There is an alternative implementation that relies on addition field of DISubprogram/DILexicalScope that tracks static locals, local imports and types D125693.

Mon, May 16, 8:41 AM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D125693: [DebugInfo][WIP] Support types, imports and static locals declared in a lexical block (3/5).

Mark this and D125691 as WIP since I'm still testing the approach on various combinations of debug info and optimization options (O0, O3, thinlto, split-dwarf, split-dwarf-inlining, gline-tables-only, etc.).
Except of the testing purpose itself I'm also trying to catch the issue reported by David here https://reviews.llvm.org/D113741#3437182 for previous implementation (while I hope this approach wouldn't trigger the issue, it'd be good to catch and fix it anyway).

Mon, May 16, 8:40 AM · debug-info, Restricted Project, Restricted Project, Restricted Project
krisb added a project to D125693: [DebugInfo][WIP] Support types, imports and static locals declared in a lexical block (3/5): debug-info.
Mon, May 16, 8:39 AM · debug-info, Restricted Project, Restricted Project, Restricted Project
krisb requested review of D125693: [DebugInfo][WIP] Support types, imports and static locals declared in a lexical block (3/5).
Mon, May 16, 8:38 AM · debug-info, Restricted Project, Restricted Project, Restricted Project
krisb abandoned D115277: [lldb] Workaround for type-like entities defined in a lexical block.

Abandon for now.
Issue on gitlab: https://github.com/llvm/llvm-project/issues/54475

Mon, May 16, 8:05 AM · Restricted Project, Restricted Project
krisb retitled D114705: [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5) from [DwarfDebug] Move emission of global vars, types and imports to endModule() to [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5).
Mon, May 16, 8:01 AM · Restricted Project, debug-info, Restricted Project
krisb updated the diff for D114705: [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5).

Rebase on ToT.

Mon, May 16, 8:00 AM · Restricted Project, debug-info, Restricted Project
krisb added a project to D125691: [DebugInfo][WIP] Add localDecls field to DISubprogram and DILexicalBlock (1/5): debug-info.
Mon, May 16, 7:56 AM · debug-info, Restricted Project, Restricted Project
krisb requested review of D125691: [DebugInfo][WIP] Add localDecls field to DISubprogram and DILexicalBlock (1/5).
Mon, May 16, 7:55 AM · debug-info, Restricted Project, Restricted Project

Sat, May 14

krisb committed rG40e665906bcf: [DebugInfo][Test] Simplify 'llvm/test/CodeGen/ARM/*-MergedGlobalDbg.ll'. NFC (authored by krisb).
[DebugInfo][Test] Simplify 'llvm/test/CodeGen/ARM/*-MergedGlobalDbg.ll'. NFC
Sat, May 14, 2:10 AM · Restricted Project, Restricted Project
krisb closed D125531: [DebugInfo][Test] Simplify 'llvm/test/CodeGen/ARM/*-MergedGlobalDbg.ll'. NFC.
Sat, May 14, 2:10 AM · Restricted Project, Restricted Project

Fri, May 13

krisb requested review of D125531: [DebugInfo][Test] Simplify 'llvm/test/CodeGen/ARM/*-MergedGlobalDbg.ll'. NFC.
Fri, May 13, 3:31 AM · Restricted Project, Restricted Project

Apr 8 2022

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

I tried applying this internally & running the same build that tripped over something last time this was committed & I seem to be tripping over the same thing:

(.debug_gnu_pubnames): name lookup table at offset 0x38cd has a terminator at offset 0x38db before the expected end at 0x3a3d

As well as a bunch of unresolved symbols during linking... :/

I'll have to work on reducing a test case for this.

Apr 8 2022, 12:28 PM · Restricted Project, debug-info, Restricted Project

Mar 30 2022

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

Statement 1. The problem with the example you provided above was because this patch made subprograms and their local "global" entities emitted in different CUs in the case of split DWARF. This is a bug, for sure.

Is that bug now addressed in the proposed patch & with tests to demonstrate it's fixed?

Mar 30 2022, 2:43 AM · Restricted Project, debug-info, Restricted Project

Mar 21 2022

krisb committed rGafbe54f2feb0: [clang] Fix wrong -Wunused-local-typedef warning within a template function (authored by krisb).
[clang] Fix wrong -Wunused-local-typedef warning within a template function
Mar 21 2022, 4:23 AM · Restricted Project
krisb closed D114382: [clang] Fix wrong -Wunused-local-typedef warning within a template function.
Mar 21 2022, 4:23 AM · Restricted Project, Restricted Project
krisb retitled D114446: [clang] Fix wrong -Wunused-local-typedef warning if use is a dependent qualified identifier from [clang] Fix wrong -Wunused-local-typedef warning if use is a dependent qialified identifier to [clang] Fix wrong -Wunused-local-typedef warning if use is a dependent qualified identifier.
Mar 21 2022, 3:27 AM · Restricted Project, Restricted Project

Mar 14 2022

krisb added inline comments to D114382: [clang] Fix wrong -Wunused-local-typedef warning within a template function.
Mar 14 2022, 11:48 AM · Restricted Project, Restricted Project
krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

Friendly ping :)

Mar 14 2022, 11:31 AM · Restricted Project, debug-info, Restricted Project

Mar 7 2022

krisb added inline comments to D114382: [clang] Fix wrong -Wunused-local-typedef warning within a template function.
Mar 7 2022, 4:05 PM · Restricted Project, Restricted Project
Herald added a project to D120494: [NVPTX][AsmPrinter] Respect metadata 'align' for aggregate input parameters: Restricted Project.

What is the problem the patch is intended to solve? To allow better vectorization of param-space loads/stores ?

Mar 7 2022, 1:08 PM · Restricted Project, Restricted Project
Herald added a project to D114382: [clang] Fix wrong -Wunused-local-typedef warning within a template function: Restricted Project.

Ping

Mar 7 2022, 2:06 AM · Restricted Project, Restricted Project
Herald added a project to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block: Restricted Project.

Ping

Mar 7 2022, 2:06 AM · Restricted Project, debug-info, Restricted Project

Mar 1 2022

krisb added a comment to D120499: [NVPTX] Fix nvvm.match.sync*.i64 intrinsics return type (i64 -> i32).

@tra thank you for looking at this!

Mar 1 2022, 2:27 AM · Restricted Project, Restricted Project
krisb committed rG57aaab3b17f0: [NVPTX] Fix nvvm.match.sync*.i64 intrinsics return type (i64 -> i32) (authored by krisb).
[NVPTX] Fix nvvm.match.sync*.i64 intrinsics return type (i64 -> i32)
Mar 1 2022, 2:27 AM
krisb closed D120499: [NVPTX] Fix nvvm.match.sync*.i64 intrinsics return type (i64 -> i32).
Mar 1 2022, 2:27 AM · Restricted Project, Restricted Project

Feb 28 2022

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

I'm not immediately following why a list of CUs is needed/why we'd create the variable in more than one CU - could you explain that?

Well, this is because we may have a parent subprogram emitted in more than one CU (in the case of split dwarf), and we do not know in which one.
Here are the situations I see (hope I got them right):
(1) If split dwarf disabled, we have a single list of subprogram's abstract origins and can reference them between CUs. So, we'll emit a concrete definition and its abstract origin (any existing) in the same CU. In this case, we have only one CU.
(2) If we have split dwarf enabled, and shareAcrossDWOCUs() is false (it's false by default), every CU will maintain its own abstract origin's list. In this case, we cannot have references between CUs, and if we have cross-CU inlining, we'll create:

  • concrete def -> in the CU the subprogram is defined,
  • abstract origin -> in every CU the subprogram is inlined. For all local entities we should follow the same logic.

Do you have a test case for this (sorry, I realize it might be one of the test cases in the patch - I haven't looked/would appreciate some pointers)? My recollection is that without shareAcrossDWOCUs we should probably be only emitting one CU if using Split DWARF - Split DWARF doesn't really support multiple CUs in a single .dwo file (& we only support emitting a single .dwo for a given .o file) - but I guess maybe we do in full LTO mode, even if we don't do it in ThinLTO mode (ThinLTO's the only thing I've been especially concerned with/the only mode we use at Google)?

Feb 28 2022, 5:29 AM · Restricted Project, debug-info, Restricted Project
krisb updated the diff for D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

Apply David's comment and add 'REQUIRES: object-emission' to tests.

Feb 28 2022, 5:29 AM · Restricted Project, debug-info, Restricted Project

Feb 25 2022

krisb updated the diff for D120499: [NVPTX] Fix nvvm.match.sync*.i64 intrinsics return type (i64 -> i32).

Fix a test.

Feb 25 2022, 7:31 AM · Restricted Project, Restricted Project
krisb updated the diff for D120499: [NVPTX] Fix nvvm.match.sync*.i64 intrinsics return type (i64 -> i32).

Add SM_70 requirement for 'match' builtins.

Feb 25 2022, 12:27 AM · Restricted Project, Restricted Project
krisb committed rG3fe6f9388fd3: [NVPTX][AsmPrinter] Emit .attribute(.managed) for global variable declarations (authored by krisb).
[NVPTX][AsmPrinter] Emit .attribute(.managed) for global variable declarations
Feb 25 2022, 12:22 AM
krisb closed D120493: [NVPTX][AsmPrinter] Emit .attribute(.managed) for global variable declarations.
Feb 25 2022, 12:22 AM · Restricted Project

Feb 24 2022

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

All good.

I'm not immediately following why a list of CUs is needed/why we'd create the variable in more than one CU - could you explain that?

Well, this is because we may have a parent subprogram emitted in more than one CU (in the case of split dwarf), and we do not know in which one.
Here are the situations I see (hope I got them right):
(1) If split dwarf disabled, we have a single list of subprogram's abstract origins and can reference them between CUs. So, we'll emit a concrete definition and its abstract origin (any existing) in the same CU. In this case, we have only one CU.
(2) If we have split dwarf enabled, and shareAcrossDWOCUs() is false (it's false by default), every CU will maintain its own abstract origin's list. In this case, we cannot have references between CUs, and if we have cross-CU inlining, we'll create:

  • concrete def -> in the CU the subprogram is defined,
  • abstract origin -> in every CU the subprogram is inlined. For all local entities we should follow the same logic.

Do you have a test case for this (sorry, I realize it might be one of the test cases in the patch - I haven't looked/would appreciate some pointers)? My recollection is that without shareAcrossDWOCUs we should probably be only emitting one CU if using Split DWARF - Split DWARF doesn't really support multiple CUs in a single .dwo file (& we only support emitting a single .dwo for a given .o file) - but I guess maybe we do in full LTO mode, even if we don't do it in ThinLTO mode (ThinLTO's the only thing I've been especially concerned with/the only mode we use at Google)?

Feb 24 2022, 1:18 PM · Restricted Project, debug-info, Restricted Project
krisb added inline comments to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.
Feb 24 2022, 11:30 AM · Restricted Project, debug-info, Restricted Project
krisb updated the diff for D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

Attempt 2.

Feb 24 2022, 11:29 AM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.

Not super surprising that lldb might not be able to deal with DWARF in this shape - is LLDB support important to you/something you plan to work on for this DWARF? Otherwise we might need to opt-out of this functionality when tuning for LLDB, for instance. Unless LLDB-invested folks are interested in doing the integration work (& even then, maybe disabling it for LLDB tuning until that's fixed). @aprantl @JDevlieghere

Thank you for the suggestion!
I implemented a small workaround that makes lldb behaves like if the types have subprogram scope (see https://reviews.llvm.org/D115277), not sure I'll be able to do something better any time soon.
So, if D115277 isn't acceptable, and nobody volunteers to implement this properly, the only way to proceed is to turn this functionality off for lldb.

Thanks for having a go at a fix/workaround here.

I think we'll still need to hear from Apple folks (@aprantl @JDevlieghere @shafik ) - I'm not sure what their backwards compatibility (new clang-produced binaries being debugged with an old lldb) requirements are. If they need some backcompat there, then I guess they/we/you would still need to disable this DWARF fidelity improvement when tuning for lldb. Hopefully that can be avoided, but I don't know.

Feb 24 2022, 11:00 AM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

@dblaikie I've updated the patch with a fix for split dwarf issue (the test is included). Could I ask you to check the full build on your side?

The issue was in wrong assumptions about in which CUs we need to create those local entities. Basically, they [CUs] should match the ones where the parent subprogram was emitted.
It's not an easy thing to find the particular list of suited CUs while we are in endModule() (especially, because split-dwarf and split-dwarf inlining introduce a tricky logic around), so I chose to collect this information during subprograms emission.
The solution still looks a bit hacky, but I hope this is a step forward.

What about the second issue, unfortunately (or fortunately? :)), I'm still able to reproduce the crash on ToT of main, so I'm not sure this patch may cause the issue. I'll appreciate if could check it once again.

Thank you and sorry for the long delay.

All good.

I'm not immediately following why a list of CUs is needed/why we'd create the variable in more than one CU - could you explain that?

Feb 24 2022, 10:51 AM · Restricted Project, debug-info, Restricted Project
krisb updated the diff for D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

Minor fix.

Feb 24 2022, 10:51 AM · Restricted Project, debug-info, Restricted Project
krisb requested review of D120499: [NVPTX] Fix nvvm.match.sync*.i64 intrinsics return type (i64 -> i32).
Feb 24 2022, 9:38 AM · Restricted Project, Restricted Project
krisb requested review of D120494: [NVPTX][AsmPrinter] Respect metadata 'align' for aggregate input parameters.
Feb 24 2022, 8:43 AM · Restricted Project, Restricted Project
krisb requested review of D120493: [NVPTX][AsmPrinter] Emit .attribute(.managed) for global variable declarations.
Feb 24 2022, 8:36 AM · Restricted Project
krisb updated the diff for D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.

Rebase on top of 'main'.

Feb 24 2022, 8:21 AM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

@dblaikie I've updated the patch with a fix for split dwarf issue (the test is included). Could I ask you to check the full build on your side?

Feb 24 2022, 8:15 AM · Restricted Project, debug-info, Restricted Project
krisb updated the diff for D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.
  • Rebase on ToT & minor fixes.
  • Fix the issue when an local imported entity caused emission of multiple CUs in a dwo when split dwarf is enabled.
  • Add a test for the aforementioned issue.
Feb 24 2022, 7:46 AM · Restricted Project, debug-info, Restricted Project
krisb updated the diff for D114705: [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5).

Rebase & align checks with new order in the following tests:

Feb 24 2022, 7:38 AM · Restricted Project, debug-info, Restricted Project

Feb 23 2022

krisb reopened D114705: [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5).
Feb 23 2022, 11:17 PM · Restricted Project, debug-info, Restricted Project

Feb 21 2022

krisb added a comment to D114382: [clang] Fix wrong -Wunused-local-typedef warning within a template function.

Ping

Feb 21 2022, 8:15 AM · Restricted Project, Restricted Project

Feb 2 2022

krisb added a comment to D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.

Hi @krisb. Are their plans to give this fix another go? Do we need to first wait for D113741 to land again?

Feb 2 2022, 6:52 AM · Restricted Project

Dec 28 2021

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

To continue with a more accurate fix, one example for your reference. (The behavior is changed with/without this reversion):

Sorry, I'm not following this comment ^ (& the rest) - could you rephrase if there's a question/concern you have I can help clarify/describe/work with you on?

I guess there will be a follow-up patch for the function-local declaration for lexical block? This patch seems like a reversion of a previous functionality change?
In our internal test, we also found an issue related to variables in the lexical block, so I pasted it here for reference : )

Dec 28 2021, 4:13 PM · Restricted Project, debug-info, Restricted Project

Dec 23 2021

krisb added a reverting change for rG0ac75e82fff9: Reland [DwarfDebug] Move emission of global vars, types and imports to…: rG81378f7e56d9: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical….
Dec 23 2021, 2:48 PM
krisb added a reverting change for rGf9607d45f399: Revert "Revert "[DwarfDebug] Support emitting function-local declaration for a…: rG81378f7e56d9: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical….
Dec 23 2021, 2:48 PM
krisb committed rG81378f7e56d9: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical… (authored by krisb).
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical…
Dec 23 2021, 2:48 PM
krisb added a reverting change for D114705: [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5): rG81378f7e56d9: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical….
Dec 23 2021, 2:48 PM · Restricted Project, debug-info, Restricted Project
krisb added a reverting change for D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block: rG81378f7e56d9: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical….
Dec 23 2021, 2:48 PM · Restricted Project, debug-info, Restricted Project
krisb closed D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.
Dec 23 2021, 2:47 PM · Restricted Project
krisb added a comment to D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.

Thanks for giving this a go. Apparently there were some lingering failures from that precursor patch ( 0ac75e82fff93a80ca401d3db3541e8d1d9098f9 ) you're reverting here as well, so that's good. I'm happy to try applying/testing the next reapplication attempt once you/we've worked out the kinks.

Do you think this is ready to commit? I do see some auto-test failures, but if I'm reading them right, they're that generic failure about the go bindings I see all the time (at least locally - I guess I don't have some go pieces installed) and probably not related to this patch?

Dec 23 2021, 2:46 PM · Restricted Project
krisb reopened D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.
Dec 23 2021, 10:42 AM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

@dblaikie added another attempt to revert this as a review: D116225. Will commit once pre-commit tests + local lldb tests passed.

Dec 23 2021, 10:30 AM · Restricted Project, debug-info, Restricted Project
krisb added a reverting change for rG0ac75e82fff9: Reland [DwarfDebug] Move emission of global vars, types and imports to…: D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.
Dec 23 2021, 10:02 AM
krisb added a reverting change for rGf9607d45f399: Revert "Revert "[DwarfDebug] Support emitting function-local declaration for a…: D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.
Dec 23 2021, 10:02 AM
krisb requested review of D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.
Dec 23 2021, 10:02 AM · Restricted Project
krisb added a reverting change for D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block: D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.
Dec 23 2021, 10:02 AM · Restricted Project, debug-info, Restricted Project
krisb added a reverting change for D114705: [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5): D116225: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical block" & dependent patches.
Dec 23 2021, 10:02 AM · Restricted Project, debug-info, Restricted Project

Dec 22 2021

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

@dblaikie, thank you for the reproducers!

Dec 22 2021, 2:03 PM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

Alrighty, got an A/B comparison with/without this patch (but still not reduced to share) - seems we end up creating a second split unit for one of the imported units under ThinLTO, which is incorrect (because Split DWARF only really supports one CU per split unit - so having two in a single dwo file is broken - at least if you're going to package the file with dwp, which we do).

Looking into it further/trying to get a reduced example.

Dec 22 2021, 6:44 AM · Restricted Project, debug-info, Restricted Project

Dec 15 2021

krisb added a comment to D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.

FWIW this also caused some ThinLTO build failures (linker errors specifically) along the lines of:

(.debug_gnu_pubnames): name lookup table at offset 0x9a5 has a terminator at offset 0x9b3 before the expected end at 0x9f2

I don't have a simple/small reproduction at the moment. But would be good to work together/reach out to me if it's not easily discoverable and figure out this issue before recommitting.

Oh, I misread - that this issue was seen on the recommit & hasn't ben reverted yet.

I'll try to reduce a test case, but might be worth reverting in the interim regardless?

Dec 15 2021, 12:29 PM · Restricted Project, debug-info, Restricted Project

Dec 10 2021

krisb added a comment to D114382: [clang] Fix wrong -Wunused-local-typedef warning within a template function.

@rtrieu, thank you for looking at this! Do you have any comments about the rest of the patch? Do you think it makes sense?

Dec 10 2021, 2:47 AM · Restricted Project, Restricted Project

Dec 8 2021

krisb added a comment to D115277: [lldb] Workaround for type-like entities defined in a lexical block.

I worry this makes the case where a function has two definitions of the same type in one function a more confusing error than the "can't find type" error you would get without this patch. Is this of sufficient urgency that we can't take the time to fix it correctly?

Dec 8 2021, 6:44 AM · Restricted Project, Restricted Project

Dec 7 2021

krisb reopened D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.
Dec 7 2021, 1:28 PM · Restricted Project, debug-info, Restricted Project
krisb added a comment to D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.

Not super surprising that lldb might not be able to deal with DWARF in this shape - is LLDB support important to you/something you plan to work on for this DWARF? Otherwise we might need to opt-out of this functionality when tuning for LLDB, for instance. Unless LLDB-invested folks are interested in doing the integration work (& even then, maybe disabling it for LLDB tuning until that's fixed). @aprantl @JDevlieghere

Dec 7 2021, 12:54 PM · Restricted Project, debug-info, Restricted Project
krisb requested review of D115277: [lldb] Workaround for type-like entities defined in a lexical block.
Dec 7 2021, 12:33 PM · Restricted Project, Restricted Project

Dec 6 2021

krisb added a comment to D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.

Hey Kristina, this broke TestSetData.py on GreenDragon: https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/39089/

Since the bot has been red for several hours I went ahead and reverted your change in 4cb79294e8df8c91ae15264d1014361815d34a53.

Dec 6 2021, 9:59 AM · Restricted Project, debug-info, Restricted Project
krisb committed rGe403f4fdc883: [clang][DebugInfo] Allow function-local statics and types to be scoped within a… (authored by krisb).
[clang][DebugInfo] Allow function-local statics and types to be scoped within a…
Dec 6 2021, 2:21 AM
krisb closed D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.
Dec 6 2021, 2:20 AM · Restricted Project, debug-info, Restricted Project

Dec 5 2021

krisb committed rG514d37441918: Follow-up for D113741: fix DebugInfo/Generic/lexical_block_static.ll on MachO (authored by krisb).
Follow-up for D113741: fix DebugInfo/Generic/lexical_block_static.ll on MachO
Dec 5 2021, 5:33 AM
krisb committed rG75b622a79594: Reland [DwarfDebug] Support emitting function-local declaration for a lexical… (authored by krisb).
Reland [DwarfDebug] Support emitting function-local declaration for a lexical…
Dec 5 2021, 3:57 AM
krisb committed rG0ac75e82fff9: Reland [DwarfDebug] Move emission of global vars, types and imports to… (authored by krisb).
Reland [DwarfDebug] Move emission of global vars, types and imports to…
Dec 5 2021, 3:57 AM

Dec 4 2021

krisb committed rGa961604819a7: Revert "[DwarfDebug] Support emitting function-local declaration for a lexical… (authored by krisb).
Revert "[DwarfDebug] Support emitting function-local declaration for a lexical…
Dec 4 2021, 8:08 AM
krisb committed rGee691970a9a8: [DwarfDebug] Support emitting function-local declaration for a lexical block (authored by krisb).
[DwarfDebug] Support emitting function-local declaration for a lexical block
Dec 4 2021, 7:13 AM
krisb closed D113741: [RFC][DwarfDebug][AsmPrinter] Support emitting function-local declaration for a lexical block.
Dec 4 2021, 7:13 AM · Restricted Project, debug-info, Restricted Project
krisb committed rG79d3132998b2: [DwarfDebug] Move emission of global vars, types and imports to endModule() (authored by krisb).
[DwarfDebug] Move emission of global vars, types and imports to endModule()
Dec 4 2021, 4:10 AM
krisb closed D114705: [DwarfDebug] Move emission of global vars, types and imports to endModule() (2/5).
Dec 4 2021, 4:10 AM · Restricted Project, debug-info, Restricted Project

Dec 3 2021

krisb committed rG0bf2c87785f3: [llvm-dwarfdump] Do not print preceding :: for local types (authored by krisb).
[llvm-dwarfdump] Do not print preceding :: for local types
Dec 3 2021, 2:28 AM
krisb closed D114892: [llvm-dwarfdump] Do not print preceding :: for local types.
Dec 3 2021, 2:28 AM · Restricted Project

Dec 2 2021

krisb added a comment to D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block.

Ping

Dec 2 2021, 9:52 AM · Restricted Project, debug-info, Restricted Project
krisb updated the diff for D114446: [clang] Fix wrong -Wunused-local-typedef warning if use is a dependent qualified identifier.

Simplified diagnostic condition in TemplateDeclInstantiator::InstantiateTypedefNameDecl().

Dec 2 2021, 6:43 AM · Restricted Project, Restricted Project
krisb added inline comments to D108301: [MSP430][Clang] Update hard-coded MCU data.
Dec 2 2021, 4:35 AM · Restricted Project, Restricted Project
krisb added a comment to D114892: [llvm-dwarfdump] Do not print preceding :: for local types.

The patch is more about testing generic DebugInfo behaviour, rather than anything specific to llvm-dwarfdump. I wonder if the test would make more sense there? No strong feelings on that though.

Dec 2 2021, 3:50 AM · Restricted Project