Page MenuHomePhabricator
Feed Advanced Search

Yesterday

SouraVX added a comment to D80945: [DebugInfo] Fix a fatal error originating from split-macro support.

I don't think this field (debug_line_offset) is optional if the debug_macro.dwo section contains DW_MACRO_start_file: "If a DW_MACRO_start_file entry is present, the header contains a reference to the .debug_line section of the compilation."

Yes, but spec seems a bit ambiguous in stating this. "If zero, that field is omitted. Pg. 166, line 14-16", Not explicitly stating the fact/case where it should be always present.
And spec also doesn't say anything about explicit presence of debug_line.dwo when debug_macro.dwo is present, although it seems it should be present.

Mon, Jun 1, 11:15 PM · debug-info, Restricted Project
ikudrin added a comment to D80523: [DebugInfo] Report the format of debug info tables..

Thanks to all reviewers! It looks like we have reached the consensus at this variant, so I am going to land it, splitting into smaller parts for individual tables.

Mon, Jun 1, 10:09 PM · debug-info, Restricted Project
helloqirun added a comment to D80691: Proposed fix for PR46114.

Thanks @Orlando, I think I agree with your reasoning. My patch on introducing an undef is based on the same reasoning (but I could be totally wrong).

Mon, Jun 1, 5:53 PM · debug-info, Restricted Project
vsk closed D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst.
Mon, Jun 1, 4:49 PM · debug-info, Restricted Project
Harbormaster failed remote builds in B58653: Diff 267690 for D80945: [DebugInfo] Fix a fatal error originating from split-macro support!
Mon, Jun 1, 1:35 PM · debug-info, Restricted Project
Harbormaster failed remote builds in B58656: Diff 267697 for D80945: [DebugInfo] Fix a fatal error originating from split-macro support!
Mon, Jun 1, 1:33 PM · debug-info, Restricted Project
dblaikie added a comment to D80945: [DebugInfo] Fix a fatal error originating from split-macro support.

I don't think this field (debug_line_offset) is optional if the debug_macro.dwo section contains DW_MACRO_start_file: "If a DW_MACRO_start_file entry is present, the header contains a reference to the .debug_line section of the compilation."

Mon, Jun 1, 12:59 PM · debug-info, Restricted Project
SouraVX updated the diff for D80945: [DebugInfo] Fix a fatal error originating from split-macro support.

Added corrected test case.

Mon, Jun 1, 12:25 PM · debug-info, Restricted Project
SouraVX added a parent revision for D80945: [DebugInfo] Fix a fatal error originating from split-macro support: D78866: [DWARF5] Added support for emission of .debug_macro.dwo section.
Mon, Jun 1, 12:25 PM · debug-info, Restricted Project
SouraVX added a child revision for D78866: [DWARF5] Added support for emission of .debug_macro.dwo section: D80945: [DebugInfo] Fix a fatal error originating from split-macro support.
Mon, Jun 1, 12:25 PM · Restricted Project, debug-info
SouraVX added a project to D80945: [DebugInfo] Fix a fatal error originating from split-macro support: debug-info.
Mon, Jun 1, 12:25 PM · debug-info, Restricted Project
vsk accepted D78369: [DebugInfo] Reduce SalvageDebugInfo() functions.

This looks good to me. We should consolidate the salvageDebugInfo* APIs. I think the conversation about renaming the API is a bit moot post-D80264 (afaict the motivation for the rename was that /not/ calling the API could result in invalid debug info -- that should be fixed now).

Mon, Jun 1, 12:25 PM · Restricted Project, debug-info
probinson accepted D80523: [DebugInfo] Report the format of debug info tables..

LGTM with the suggested helper.

Mon, Jun 1, 8:00 AM · debug-info, Restricted Project
ikudrin updated the diff for D80523: [DebugInfo] Report the format of debug info tables..
  • Rebased on the tip.
Mon, Jun 1, 7:28 AM · debug-info, Restricted Project
ikudrin closed D80806: [DebugInfo] Separate fields in headers with commas..
Mon, Jun 1, 3:42 AM · debug-info, Restricted Project
Orlando added a comment to D78369: [DebugInfo] Reduce SalvageDebugInfo() functions.

LGTM. There are two other text only LGTMs on this patch and AFAICT the only blocker is the (inline) discussion on whether salvageDebugInfo needs renaming, but there doesn't seem to be a consensus. Does anyone have a strong opinion on this subject?

Mon, Jun 1, 3:41 AM · Restricted Project, debug-info
Orlando added a comment to D80691: Proposed fix for PR46114.

This is quite a long reply so I've got a very small "summary" at the end.

Mon, Jun 1, 3:09 AM · debug-info, Restricted Project
djtodoro added inline comments to D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst.
Mon, Jun 1, 2:05 AM · debug-info, Restricted Project
jhenderson accepted D80806: [DebugInfo] Separate fields in headers with commas..

LGTM, with the other tests fixed.

Mon, Jun 1, 2:05 AM · debug-info, Restricted Project
djtodoro closed D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.
Mon, Jun 1, 12:29 AM · Restricted Project, debug-info, Restricted Project
djtodoro added a comment to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.

Thanks for the reviews!

Mon, Jun 1, 12:29 AM · Restricted Project, debug-info, Restricted Project

Sun, May 31

helloqirun updated the diff for D80691: Proposed fix for PR46114.

I have added the test case and made a minor change. The RemoveRedundantDbgInstrs call will always keep the second dbg.value. If we do RAUW first, the corresponding value will be replaced -- that causes PR46114. With this patch, we set it as undef. If I missed anything, please let me know. I think @Orlando's suggestion on merging the locations will be a good improvement.

Sun, May 31, 11:10 AM · debug-info, Restricted Project
MaskRay accepted D80806: [DebugInfo] Separate fields in headers with commas..

See harbomaster failures. Two test/CodeGen/X86/ tests need adjustment as well.

Sun, May 31, 10:38 AM · debug-info, Restricted Project

Fri, May 29

SouraVX closed D78866: [DWARF5] Added support for emission of .debug_macro.dwo section.
Fri, May 29, 10:50 PM · Restricted Project, debug-info
SouraVX added a comment to D78866: [DWARF5] Added support for emission of .debug_macro.dwo section.

debug_macro.dwo section

.debug_macro.dwo

Fri, May 29, 10:50 PM · Restricted Project, debug-info
SouraVX retitled D78866: [DWARF5] Added support for emission of .debug_macro.dwo section from [DWARF5] Added support for emission of debug_macro.dwo section to [DWARF5] Added support for emission of .debug_macro.dwo section.
Fri, May 29, 10:50 PM · Restricted Project, debug-info
MaskRay added a comment to D78866: [DWARF5] Added support for emission of .debug_macro.dwo section.

debug_macro.dwo section

Fri, May 29, 5:30 PM · Restricted Project, debug-info
helloqirun added a comment to D80691: Proposed fix for PR46114.

I think that this patch reduces variable coverage by undefing dbg.values which
it cannot salvage that would otherwise be RAUWd.

I'd expect your call to salvageDebugInfoOrMarkUndef to insert an 'undef'
dbg.value for 'l_52' for your original reproducer because you cannot salvage a
load operation. When I build with this patch locally, that is what I get. lldb
(and gdb) tells me that the value for 'l_52' has been optimized out.

With your patch applied, using your original reproducer:

$ cat test.c
int a = 1;
short b;
char c;
int main() {
  int d = a, l_52 = 0;
  b = (l_52 = a) - c; //   qirun0
  if (d) {
    int e=1;
  }
}

$ clang-with-your-patch -O3 -g test.c
$ lldb a.out
...
(lldb) s
Process 21970 stopped
* thread #1, name = 'a.out', stop reason = step in
    frame #0: 0x0000000000400486 a.out`main at test.c:6:20
   3   	char c;
   4   	int main() {
   5   	  int d = a, l_52 = 0;
-> 6   	  b = (l_52 = a) - c; //   qirun0
   7   	  if (d) {
   8   	    int e=1;
   9   	  }
(lldb) p l_52
error: Couldn't materialize: couldn't get the value of variable l_52: no location, value may have been optimized out

My lldb is built at 9b56cc9361a471a3ce57da4c98f60e377cc43026 (1st April 2020),
and clang 709c52b9553 (18th May 2020). What do you see in lldb when you build
your original reproducer with this patch?

There are cases where EarlyCSE needs to remove the first (the following case). The instruction %0 = load i32, i32* @a, align 4 can be the product of both EarlyCSE DCE (the following case) and EarlyCSE CSE LOAD (the case in the original PR).

My understanding is that DCE and CSE do not have equal implications for
debug-info. DCE means the value is going away because it isn't used. In this
case we should salvage any debug users (i.e. dbg.values using the value),
because the value will no longer exist. For CSE the value still exists
somewhere, so we instead want to update debug users to use the value which we
are keeping. This is what the line Inst.replaceAllUsesWith(Op); is doing
without your patch. However, with your patch applied, the salvage call replaces
the dbg.values with a constant if it can salvage, or undef if it cannot. This
means that the replaceAllUsesWith (RAUW) cannot update the debug users.

Thanks! Yes, if we want to have two dbg.value in the IR, it works fine. That's precisely what was before e5f07080b8a, i.e., the final IR will contain

call void @llvm.dbg.value(metadata i32 0, metadata !22, metadata !DIExpression()), !dbg !31
call void @llvm.dbg.value(metadata i32 %0, metadata !22, metadata !DIExpression()), !dbg !31
and lldb can print the correct value of 0.

I wouldn't expect this to result in you seeing a value of '0' in the debugger.

Fri, May 29, 4:57 PM · debug-info, Restricted Project
helloqirun added a comment to D80691: Proposed fix for PR46114.

Please add a test as well.

Fri, May 29, 4:57 PM · debug-info, Restricted Project
dblaikie accepted D78866: [DWARF5] Added support for emission of .debug_macro.dwo section.

Looks good, thanks!

Fri, May 29, 4:25 PM · Restricted Project, debug-info
aprantl added inline comments to D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst.
Fri, May 29, 2:46 PM · debug-info, Restricted Project
aprantl added a comment to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.

@vsk: this is going to be relevant if we ever decide to produce DWARF for the extra attributes currently read from the .apinotes (swift names, availability, nullabilkity, ...)

Fri, May 29, 2:14 PM · Restricted Project, debug-info, Restricted Project
aprantl accepted D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.
Fri, May 29, 2:14 PM · Restricted Project, debug-info, Restricted Project
aprantl added inline comments to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.
Fri, May 29, 2:14 PM · Restricted Project, debug-info, Restricted Project
Harbormaster failed remote builds in B58486: Diff 267344 for D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst!
Fri, May 29, 1:41 PM · debug-info, Restricted Project
Harbormaster failed remote builds in B58480: Diff 267338 for D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst!
Fri, May 29, 1:41 PM · debug-info, Restricted Project
vsk updated the diff for D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst.

Update wording to reflect a change from D80264.

Fri, May 29, 1:06 PM · debug-info, Restricted Project
vsk updated the diff for D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst.

Incorporate suggestions from reviewers.

Fri, May 29, 1:06 PM · debug-info, Restricted Project
vsk added a comment to D80052: [docs] Sketch outline for HowToUpdateDebugInfo.rst.

Sorry for the delay. I'll share an update soon. I'll plan to land this by EOD next Monday (PST) if there aren't any objections, so we can parallelize work on this.

Fri, May 29, 1:06 PM · debug-info, Restricted Project
SouraVX closed D78865: [DWARF5] Replace emission of strp with stx forms in debug_macro section.
Fri, May 29, 12:01 PM · Restricted Project, debug-info
SouraVX closed D78500: [DWARF5]:Added support for .debug_macro.dwo section in llvm-dwarfdump.
Fri, May 29, 12:01 PM · Restricted Project, debug-info
probinson closed D80756: Preserve DbgLoc when DeadArgumentElimination rewrites a 'ret'..
Fri, May 29, 10:21 AM · debug-info, Restricted Project
probinson added a comment to D80756: Preserve DbgLoc when DeadArgumentElimination rewrites a 'ret'..

Fixed by llvmorg-11-init-16204-g8c2d2d971b2 (forgot to put the revision in the commit log).

Fri, May 29, 10:21 AM · debug-info, Restricted Project
SouraVX added a comment to D78866: [DWARF5] Added support for emission of .debug_macro.dwo section.

Since we reached consensus on D78500, D78865(Thank You! for this). Can we have consensus on this one too ?

Fri, May 29, 9:45 AM · Restricted Project, debug-info
dblaikie accepted D78500: [DWARF5]:Added support for .debug_macro.dwo section in llvm-dwarfdump.

Looks OK - thanks!

Fri, May 29, 9:45 AM · Restricted Project, debug-info
dblaikie added inline comments to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.
Fri, May 29, 9:45 AM · Restricted Project, debug-info, Restricted Project
dblaikie accepted D80806: [DebugInfo] Separate fields in headers with commas..

Awesome, thanks! (could separate this into three commits for the three independent changes but I don't feel strongly about that)
Maybe we could even have a utility for printing these headers we could reuse in all these places to ensure consistency? Might not be worth it, though - not sure.

Fri, May 29, 9:45 AM · debug-info, Restricted Project
dblaikie accepted D78865: [DWARF5] Replace emission of strp with stx forms in debug_macro section.

Sounds good to me - thanks!

Fri, May 29, 9:45 AM · Restricted Project, debug-info
Harbormaster failed remote builds in B58436: Diff 267255 for D80806: [DebugInfo] Separate fields in headers with commas.!
Fri, May 29, 9:13 AM · debug-info, Restricted Project
ikudrin added inline comments to D80523: [DebugInfo] Report the format of debug info tables..
Fri, May 29, 8:40 AM · debug-info, Restricted Project
ikudrin created D80806: [DebugInfo] Separate fields in headers with commas..
Fri, May 29, 8:39 AM · debug-info, Restricted Project
SouraVX added a comment to D78865: [DWARF5] Replace emission of strp with stx forms in debug_macro section.

One more big win in non-DWO case is that switching to strx form will save a relocation per macro entry compared to the counter part strp form which uses relocation.

Fri, May 29, 8:06 AM · Restricted Project, debug-info
SouraVX added a comment to D78500: [DWARF5]:Added support for .debug_macro.dwo section in llvm-dwarfdump.

Thanks @ikudrin for investing in reviewing this!
@dblaikie and all other reviewers, does these changes looks good to you folks ?

Fri, May 29, 6:29 AM · Restricted Project, debug-info
SouraVX added a comment to D78865: [DWARF5] Replace emission of strp with stx forms in debug_macro section.

What are the benefits of using STRX code in the non-DWO case?

I think having one form in both cases (split and non-split) simplifies the emission logic greatly. Otherwise we may have to carve out conditional emission that would be hard to maintain and extend.
Please share your opinion on this.

Fri, May 29, 6:29 AM · Restricted Project, debug-info
ikudrin added a comment to D78865: [DWARF5] Replace emission of strp with stx forms in debug_macro section.

What are the benefits of using STRX code in the non-DWO case?

Fri, May 29, 6:29 AM · Restricted Project, debug-info
ikudrin accepted D78500: [DWARF5]:Added support for .debug_macro.dwo section in llvm-dwarfdump.

Well, improving DWARFDebugMacro::parseImpl() is not really related to this particular patch.

Fri, May 29, 5:56 AM · Restricted Project, debug-info
ikudrin added a comment to D80523: [DebugInfo] Report the format of debug info tables..

I believe GNU readelf and friends tend to put this info after the length, e.g. "Length: 0x1234 (64-bit)" or "Length: 0x1234 (32-bit)" so it might be worth being vaguely similar.

Fri, May 29, 5:56 AM · debug-info, Restricted Project
dstenb accepted D78107: [CSInfo][MIPS] Call delay slot support in DwarfDebug.

LGTM. Sorry for the delay!

Fri, May 29, 4:50 AM · Restricted Project, debug-info
ntesic added a comment to D78107: [CSInfo][MIPS] Call delay slot support in DwarfDebug.

@dstenb Thanks for the review. Any additional comments?

Fri, May 29, 4:18 AM · Restricted Project, debug-info
Orlando requested changes to D80691: Proposed fix for PR46114.

I think that this patch reduces variable coverage by undefing dbg.values which
it cannot salvage that would otherwise be RAUWd.

Fri, May 29, 2:08 AM · debug-info, Restricted Project
djtodoro added inline comments to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.
Fri, May 29, 1:03 AM · Restricted Project, debug-info, Restricted Project
djtodoro added a comment to D80691: Proposed fix for PR46114.

Please add a test as well.

Fri, May 29, 1:03 AM · debug-info, Restricted Project
Orlando added inline comments to D78369: [DebugInfo] Reduce SalvageDebugInfo() functions.
Fri, May 29, 1:03 AM · Restricted Project, debug-info

Thu, May 28

dblaikie added inline comments to D78369: [DebugInfo] Reduce SalvageDebugInfo() functions.
Thu, May 28, 7:15 PM · Restricted Project, debug-info
Harbormaster failed remote builds in B58358: Diff 267095 for D70523: [AMDGPU] Update AMDGPUUsage with DWARF proposal!
Thu, May 28, 5:39 PM · debug-info, Restricted Project
t-tye closed D70523: [AMDGPU] Update AMDGPUUsage with DWARF proposal.
Thu, May 28, 5:39 PM · debug-info, Restricted Project
dblaikie accepted D80756: Preserve DbgLoc when DeadArgumentElimination rewrites a 'ret'..

Looks good, thanks!

Thu, May 28, 5:38 PM · debug-info, Restricted Project
b-sumner added a comment to D70523: [AMDGPU] Update AMDGPUUsage with DWARF proposal.

LGTM

Thu, May 28, 5:38 PM · debug-info, Restricted Project
t-tye updated the diff for D70523: [AMDGPU] Update AMDGPUUsage with DWARF proposal.

[AMDGPU] DWARF Proposal For Heterogeneous Debugging

Thu, May 28, 5:38 PM · debug-info, Restricted Project
t-tye reopened D70523: [AMDGPU] Update AMDGPUUsage with DWARF proposal.

Add introduction section.

Thu, May 28, 5:38 PM · debug-info, Restricted Project
probinson added a project to D80756: Preserve DbgLoc when DeadArgumentElimination rewrites a 'ret'.: debug-info.
Thu, May 28, 1:45 PM · debug-info, Restricted Project
dblaikie added inline comments to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.
Thu, May 28, 12:38 PM · Restricted Project, debug-info, Restricted Project
davide added a comment to D80691: Proposed fix for PR46114.

There are a bunch of places where we have this pattern:
salvageKnowledge(); salvageDI(); eraseFromParent().

Thu, May 28, 12:08 PM · debug-info, Restricted Project
helloqirun updated the diff for D80691: Proposed fix for PR46114.

Re-formatted the comment.

Thu, May 28, 11:34 AM · debug-info, Restricted Project
aprantl added inline comments to D80691: Proposed fix for PR46114.
Thu, May 28, 10:56 AM · debug-info, Restricted Project
Orlando added a comment to D80691: Proposed fix for PR46114.

I had another look at this and followed it up on the ticket (PR46114).

Thu, May 28, 7:35 AM · debug-info, Restricted Project
Orlando added a comment to D80691: Proposed fix for PR46114.

I had another look at this and followed it up on the ticket (PR46114).

Thu, May 28, 7:34 AM · debug-info, Restricted Project
alok added inline comments to D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.
Thu, May 28, 7:02 AM · Restricted Project, Restricted Project, debug-info
helloqirun added a comment to D80691: Proposed fix for PR46114.

During EarlyCSE we detect that %0 = load i32, i32* @a is the same as
%1 = load i32, i32* @a, so the latter is removed. We rewrite the dbg.value
which uses %1 to use %0 instead, because %1 is being removed. IIUC this
behaviour in EarlyCSE looks correct, and makes me feel like the issue
comes from somewhere else?

Thu, May 28, 7:02 AM · debug-info, Restricted Project
helloqirun added a comment to D80691: Proposed fix for PR46114.

Hi @Orlando
Thanks! Yes, if we want to have two dbg.value in the IR, it works fine. That's precisely what was before e5f07080b8a, i.e., the final IR will contain

call void @llvm.dbg.value(metadata i32 0, metadata !22, metadata !DIExpression()), !dbg !31
call void @llvm.dbg.value(metadata i32 %0, metadata !22, metadata !DIExpression()), !dbg !31

and lldb can print the correct value of 0.

Thu, May 28, 6:30 AM · debug-info, Restricted Project
melver added inline comments to D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.
Thu, May 28, 5:57 AM · Restricted Project, Restricted Project, debug-info
alok added a comment to D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.

This breaks check-llvm on Windows: http://45.33.8.238/win/16214/step_11.txt

Please take a look and revert if it takes a while to investigate.

Thu, May 28, 5:57 AM · Restricted Project, Restricted Project, debug-info
Orlando added inline comments to D78369: [DebugInfo] Reduce SalvageDebugInfo() functions.
Thu, May 28, 4:51 AM · Restricted Project, debug-info
chrisjackson added a project to D79863: [DebugInfo] Refactor SalvageDebugInfo and SalvageDebugInfoForDbgValues: debug-info.
Thu, May 28, 4:50 AM · debug-info, Restricted Project
chrisjackson added a watcher for debug-info: chrisjackson.
Thu, May 28, 4:18 AM
thakis added a comment to D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.

This breaks check-llvm on Windows: http://45.33.8.238/win/16214/step_11.txt

Thu, May 28, 4:18 AM · Restricted Project, Restricted Project, debug-info
Orlando added a project to D80691: Proposed fix for PR46114: debug-info.

Thanks for working on this!

Thu, May 28, 3:12 AM · debug-info, Restricted Project
djtodoro updated the diff for D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.

-Tests clean up

Thu, May 28, 2:08 AM · Restricted Project, debug-info, Restricted Project
djtodoro added a comment to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.

Not sure I follow - why was it a problem that there was no DISubprogram at all?

Actually, since the DISubprograms from the retained types don't affect the final DWARF, it's not a problem at all. :)

Thu, May 28, 2:08 AM · Restricted Project, debug-info, Restricted Project
SouraVX closed D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.
Thu, May 28, 1:35 AM · Restricted Project, Restricted Project, debug-info
alok added a comment to D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.

Thanks! I think it would be good to update clang to explicitly pass a nullptr, then we won't have as much churn in the IR for existing testcases. I think this is ready to land with that patch applied.

Thu, May 28, 1:35 AM · Restricted Project, Restricted Project, debug-info
alok added inline comments to D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.
Thu, May 28, 1:35 AM · Restricted Project, Restricted Project, debug-info

Wed, May 27

SouraVX closed D80614: [docs] Release notes for DIModule metadata.
Wed, May 27, 10:20 PM · Restricted Project, debug-info
vsk added a comment to D74986: [LiveDebugValues] Encode register location within VarLoc IDs [3/3].

@nikic D80684 might help with this as well.

Wed, May 27, 6:34 PM · Restricted Project, debug-info
vsk added a comment to D74986: [LiveDebugValues] Encode register location within VarLoc IDs [3/3].
In D74986#2057820, @vsk wrote:

While bisecting compile-time regressions, I hit on this change as a larger -O0 -g regression. It's 2% geomean on CTMark, with the largest regression being 4% on sqlite3. Might be worth a look.

@nikic We actually saw a similar result on our CTMark bot, but the regression was fixed by D76465 + D76467. Were you able to measure any improvement after those changes (or, put another way, does reverting D74986 + D76465 + D76467 fix the issue)?

Thanks for the references! When I revert these patches in reverse order, I see (for the instructions retired metric) the original regression for sqlite at +4.4%, the CoalescingBitVector optimization as a -1.1% improvement, and the collectIDsForRegs() optimization as a -0.5% improvement. So these two changes seem to recover a sizable part of the regression (about a 35%), but not the entirety. As such, there might still be some optimization potential here. (Results for reference -- these are reverts, so inverted.)

Wed, May 27, 4:55 PM · Restricted Project, debug-info
nikic added a comment to D74986: [LiveDebugValues] Encode register location within VarLoc IDs [3/3].
In D74986#2057820, @vsk wrote:

While bisecting compile-time regressions, I hit on this change as a larger -O0 -g regression. It's 2% geomean on CTMark, with the largest regression being 4% on sqlite3. Might be worth a look.

@nikic We actually saw a similar result on our CTMark bot, but the regression was fixed by D76465 + D76467. Were you able to measure any improvement after those changes (or, put another way, does reverting D74986 + D76465 + D76467 fix the issue)?

Wed, May 27, 3:16 PM · Restricted Project, debug-info
dblaikie added a comment to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.

The declaration subprograms are in the retained types list - but when retained types are emitted, only types in the retained types list are used, the subprograms (and the types they only indirectly reference) are ignored.

So adding the subprogram nodes to retained types has no effect?

Wed, May 27, 1:36 PM · Restricted Project, debug-info, Restricted Project
probinson added a comment to D80523: [DebugInfo] Report the format of debug info tables..

I believe GNU readelf and friends tend to put this info after the length, e.g. "Length: 0x1234 (64-bit)" or "Length: 0x1234 (32-bit)" so it might be worth being vaguely similar.

Wed, May 27, 12:29 PM · debug-info, Restricted Project
aprantl accepted D80197: [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays.

Thanks! I think it would be good to update clang to explicitly pass a nullptr, then we won't have as much churn in the IR for existing testcases. I think this is ready to land with that patch applied.

Wed, May 27, 11:23 AM · Restricted Project, Restricted Project, debug-info
aprantl added a comment to D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'.

The declaration subprograms are in the retained types list - but when retained types are emitted, only types in the retained types list are used, the subprograms (and the types they only indirectly reference) are ignored.

Wed, May 27, 11:22 AM · Restricted Project, debug-info, Restricted Project