Page MenuHomePhabricator

markus (Markus Lavin)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 19 2018, 1:12 AM (39 w, 6 d)

Recent Activity

Jun 4 2019

markus added a comment to D62604: [CodeGen] Generic Hardware Loop Support.

I would expect many targets to have some kind of validity check late on in the pipeline. loop.decrement.reg is designed so that it could just be selected to a machine sub, as the IV chain still exists along with the icmp and br. I have assumed that because the intrinsic behaves like a sub, any target should be able to, hopefully trivially, fall back to a machine sub late on. Is this something that would be difficult for you..? The loop.decrement, which produces an i1, would cause more problems but this framework allows the backend to make the best decision for itself.

Jun 4 2019, 4:19 AM
markus added a comment to D62604: [CodeGen] Generic Hardware Loop Support.

What happens if a target decides late (like addPreEmitPass() late) that a hardware loop is no longer possible due to reasons that are not detectable from the IR level hook. For PowerPC this does not seem to be an issue, or at least I cannot find it in the code, but for other targets there could be limitations that you need to analyse the actual machine instructions to find out about. Since the original IV chain has been replaced by intrinsic llvm.loop.decrement.reg (or whatever it iselected to) it seems we now would need to manually insert instructions to update the loop counter which could possibly be a bit hairy to do this late.

Jun 4 2019, 2:33 AM

Jun 3 2019

markus added inline comments to D62604: [CodeGen] Generic Hardware Loop Support.
Jun 3 2019, 6:08 AM
markus added inline comments to D62604: [CodeGen] Generic Hardware Loop Support.
Jun 3 2019, 4:06 AM

May 21 2019

markus added a comment to D62132: [RFC] Intrinsics for Hardware Loops.

This is interesting. Our (Ericsson's) out-of-tree target has hardware loops and we currently do a similar thing i.e.

May 21 2019, 12:39 AM

May 13 2019

markus added a comment to D61184: [Salvage] Change salvage debug info implementation to use new DW_OP_LLVM_convert where needed.

The DW_OP_LLVM_convert stuff looks-good-to-me but I don't feel that I have authority to approve for the rest so please don't wait for any input from my part.

May 13 2019, 7:57 AM · Restricted Project

May 9 2019

markus committed rG92d5db524e65: Make sub-registers index names case sensitive in the MIRParser (authored by markus).
Make sub-registers index names case sensitive in the MIRParser
May 9 2019, 1:27 AM
markus committed rL360318: Make sub-registers index names case sensitive in the MIRParser.
Make sub-registers index names case sensitive in the MIRParser
May 9 2019, 1:27 AM
markus closed D61499: Make sub-registers index names case sensitive in the MIRParser.
May 9 2019, 1:27 AM · Restricted Project

May 6 2019

markus committed rGa778074165ca: [DebugInfo] GlobalOpt DW_OP_deref_size instead of DW_OP_deref. (authored by markus).
[DebugInfo] GlobalOpt DW_OP_deref_size instead of DW_OP_deref.
May 6 2019, 12:20 AM
markus committed rL360013: [DebugInfo] GlobalOpt DW_OP_deref_size instead of DW_OP_deref..
[DebugInfo] GlobalOpt DW_OP_deref_size instead of DW_OP_deref.
May 6 2019, 12:19 AM
markus closed D60611: [DebugInfo] GlobalOpt DW_OP_deref_size instead of DW_OP_deref..
May 6 2019, 12:19 AM · Restricted Project, debug-info

May 3 2019

markus abandoned D60311: MIR printer should lowercase sub-register names to be in sync with parser?.

Superseded by https://reviews.llvm.org/D61499

May 3 2019, 6:18 AM · Restricted Project
markus created D61499: Make sub-registers index names case sensitive in the MIRParser.
May 3 2019, 6:16 AM · Restricted Project

Apr 30 2019

markus committed rGa475da36eb50: [DebugInfo] DW_OP_deref_size in PrologEpilogInserter. (authored by markus).
[DebugInfo] DW_OP_deref_size in PrologEpilogInserter.
Apr 30 2019, 1:00 AM
markus committed rL359535: [DebugInfo] DW_OP_deref_size in PrologEpilogInserter..
[DebugInfo] DW_OP_deref_size in PrologEpilogInserter.
Apr 30 2019, 12:57 AM
markus closed D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.
Apr 30 2019, 12:57 AM · Restricted Project, debug-info

Apr 29 2019

markus added a comment to D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Can (or should) I proceed to push this again? I am a bit confused since the accepted status remains even though I upload new patches.

Apr 29 2019, 2:50 AM · Restricted Project, debug-info
markus added a comment to D61184: [Salvage] Change salvage debug info implementation to use new DW_OP_LLVM_convert where needed.

A bit prettier would be to introduce a DW_OP_LLVM_reinterpret op to do that job.

I am preparing a patch for that right now. Regardless of this review it should make the existing DW_OP_LLVM_convert stuff a bit cleaner.

Apr 29 2019, 1:39 AM · Restricted Project
markus added a comment to D61184: [Salvage] Change salvage debug info implementation to use new DW_OP_LLVM_convert where needed.

A bit prettier would be to introduce a DW_OP_LLVM_reinterpret op to do that job.

Apr 29 2019, 12:10 AM · Restricted Project

Apr 26 2019

markus added a comment to D61184: [Salvage] Change salvage debug info implementation to use new DW_OP_LLVM_convert where needed.

Have you verified that this results in the desired DW_OPs being emitted in the end and that the (or a) debugger makes sense out of it?

Apr 26 2019, 6:17 AM · Restricted Project
markus updated the diff for D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Use MI.isIndirectDebugValue() and improved the test a bit.

Apr 26 2019, 12:47 AM · Restricted Project, debug-info

Apr 25 2019

markus updated the diff for D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

After studying the reproducer and reading some in https://llvm.org/docs/SourceLevelDebugging.html I realize that maybe isImplicit() is not a sufficient condition and that we also need to include the second operand of the DBG_VALUE in the test.

Apr 25 2019, 5:30 AM · Restricted Project, debug-info
markus updated subscribers of D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

You may already know this, but just in case: I'm using results delta (http://delta.tigris.org) for these kind of jobs with great results. There is also creduce, but in my personal experience it is slower than multidelta and more easily tripped by unusual inputs.

Apr 25 2019, 5:16 AM · Restricted Project, debug-info

Apr 18 2019

markus added a comment to D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

! In D59687#1468571, @probinson wrote:
It sounds like you're trying to do this with aggregate types, and that won't work. Only base types (for DWARF 5) or address-like types (for DWARF <= 4) should end up on the stack.

Apr 18 2019, 2:44 AM · Restricted Project, debug-info

Apr 16 2019

markus updated the diff for D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

The Chromium compilation segfault comes down to two issues:

Apr 16 2019, 6:56 AM · Restricted Project, debug-info

Apr 13 2019

markus reopened D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Has been reverted in

commit 0366e3e18142466e4dd99d3109d8facd093cedc8 (llvm.org/master, master)
Author: Hans Wennborg <hans@hanshq.net>
Date:   Fri Apr 12 12:54:52 2019 +0000
Apr 13 2019, 12:54 AM · Restricted Project, debug-info

Apr 12 2019

markus created D60611: [DebugInfo] GlobalOpt DW_OP_deref_size instead of DW_OP_deref..
Apr 12 2019, 5:45 AM · Restricted Project, debug-info
markus committed rG138c76129bbe: [DebugInfo] DW_OP_deref_size in PrologEpilogInserter. (authored by markus).
[DebugInfo] DW_OP_deref_size in PrologEpilogInserter.
Apr 12 2019, 1:24 AM
markus committed rL358268: [DebugInfo] DW_OP_deref_size in PrologEpilogInserter..
[DebugInfo] DW_OP_deref_size in PrologEpilogInserter.
Apr 12 2019, 1:24 AM
markus closed D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.
Apr 12 2019, 1:23 AM · Restricted Project, debug-info

Apr 11 2019

markus added inline comments to D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.
Apr 11 2019, 12:22 AM · Restricted Project, debug-info
markus updated the diff for D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Moved isImplicit() to .cpp file.

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

Apr 9 2019

markus updated the diff for D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Rebased and updated isImplicit() to only check last elements.

Apr 9 2019, 6:44 AM · Restricted Project, debug-info

Apr 5 2019

markus added a comment to D60311: MIR printer should lowercase sub-register names to be in sync with parser?.

I think it would be better to let the printer use the same convention as the specified in the definitions (as used in the code).
And then I think it is a bug in the parser, as it tries to be case insensitive by matching the parsed string against a lower case definition. It should also lower the parsed string if we want the parser to be case insensitive.

If we fix the parser instead, then we still would get debug printouts etc that matches the mixed case used in the C++ code. Or maybe I haven't understood the problem correctly.

Apr 5 2019, 3:00 AM · Restricted Project
markus created D60311: MIR printer should lowercase sub-register names to be in sync with parser?.
Apr 5 2019, 1:29 AM · Restricted Project
markus added a comment to D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Ping @aprantl, just a friendly reminder.

Apr 5 2019, 1:07 AM · Restricted Project, debug-info

Mar 28 2019

markus abandoned D59685: [DebugInfo] MIRParser support to handle DW_OP_LLVM_convert ops.
Mar 28 2019, 9:44 AM · Restricted Project, debug-info
markus updated the diff for D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Rebased and fixed style nit.

Mar 28 2019, 5:42 AM · Restricted Project, debug-info
markus updated the diff for D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Moved isImplicit to DIExpression class and updated test to do sext instead of zext.

Mar 28 2019, 2:03 AM · Restricted Project, debug-info

Mar 26 2019

markus added a comment to D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

Again (and sorry for possibly over emphasizing this) the purpose of this patch is that a DW_OP_deref needs to be inserted before a memory location description can be prepended to an already existing implicit location description as otherwise the latter expression would act on the former address and not the actual value in memory.

Mar 26 2019, 2:00 AM · Restricted Project, debug-info

Mar 25 2019

markus added a comment to D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.

I am a bit worried about the other DW_OP_deref used in the compiler and how they behave wrt big-endian targets when loading something that is smaller than the size of an address on the target machine. I do not have any concrete example of where it goes wrong but I have not actively looked for one either.

Mar 25 2019, 7:18 AM · Restricted Project, debug-info

Mar 22 2019

markus abandoned D57010: Fix sign/zero extension in Dwarf expressions (with pseudo ops).
Mar 22 2019, 3:40 AM · Restricted Project, debug-info
markus created D59687: [DebugInfo] Prologue inserter need to insert DW_OP_deref_size.
Mar 22 2019, 3:34 AM · Restricted Project, debug-info
markus created D59685: [DebugInfo] MIRParser support to handle DW_OP_LLVM_convert ops.
Mar 22 2019, 3:19 AM · Restricted Project, debug-info

Mar 20 2019

markus added inline comments to D59149: [LV] move useEmulatedMaskMemRefHack() functionality to TTI..
Mar 20 2019, 1:54 AM · Restricted Project

Mar 19 2019

markus committed rG00160e226f68: [DebugInfo] Move test files added in r356451 (authored by markus).
[DebugInfo] Move test files added in r356451
Mar 19 2019, 8:16 AM
markus committed rL356460: [DebugInfo] Move test files added in r356451.
[DebugInfo] Move test files added in r356451
Mar 19 2019, 8:16 AM
markus committed rGb86ce219f4da: [DebugInfo] Introduce DW_OP_LLVM_convert (authored by markus).
[DebugInfo] Introduce DW_OP_LLVM_convert
Mar 19 2019, 6:17 AM
markus committed rL356451: [DebugInfo] Introduce DW_OP_LLVM_convert.
[DebugInfo] Introduce DW_OP_LLVM_convert
Mar 19 2019, 6:15 AM
markus committed rGad78768d5933: Revert "[DebugInfo] Introduce DW_OP_LLVM_convert" (authored by markus).
Revert "[DebugInfo] Introduce DW_OP_LLVM_convert"
Mar 19 2019, 2:17 AM
markus committed rL356444: Revert "[DebugInfo] Introduce DW_OP_LLVM_convert".
Revert "[DebugInfo] Introduce DW_OP_LLVM_convert"
Mar 19 2019, 2:16 AM
markus added a comment to D59149: [LV] move useEmulatedMaskMemRefHack() functionality to TTI..

I guess what we want to achieve here (and please correct me if I am wrong) is

Mar 19 2019, 2:02 AM · Restricted Project
markus committed rGcd8a940b37b2: [DebugInfo] Introduce DW_OP_LLVM_convert (authored by markus).
[DebugInfo] Introduce DW_OP_LLVM_convert
Mar 19 2019, 1:49 AM
markus committed rL356442: [DebugInfo] Introduce DW_OP_LLVM_convert.
[DebugInfo] Introduce DW_OP_LLVM_convert
Mar 19 2019, 1:49 AM
markus closed D56587: Introduce DW_OP_LLVM_convert.
Mar 19 2019, 1:48 AM · Restricted Project, debug-info

Mar 12 2019

markus added a comment to D59149: [LV] move useEmulatedMaskMemRefHack() functionality to TTI..

Any improvement is an improvement so I am happy with that but it is still mentioned that this solution is a hack and I guess the

Mar 12 2019, 7:12 AM · Restricted Project

Mar 1 2019

markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

We're almost there!

Yay :)

Mar 1 2019, 12:49 AM · Restricted Project, debug-info

Feb 28 2019

markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.
  • Removed explicit check for DW_OP_convert and replaced with a generic handling of operands that should work with all types (regardless if it is first, second or both that is BaseTypeRef).
Feb 28 2019, 4:43 AM · Restricted Project, debug-info

Feb 27 2019

markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.
  • Rewrote the expression parsing state machine in DwarfDebug::emitDebugLocEntry to use DWARFExpression as this avoids duplication of code describing ops and their arguments (got inspired by the dsymutil review).
Feb 27 2019, 7:44 AM · Restricted Project, debug-info

Feb 26 2019

markus added inline comments to D58534: dsymutil support for DW_OP_convert.
Feb 26 2019, 11:07 PM · Restricted Project, debug-info

Feb 25 2019

markus added inline comments to D58534: dsymutil support for DW_OP_convert.
Feb 25 2019, 11:38 PM · Restricted Project, debug-info

Feb 22 2019

markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 22 2019, 5:08 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.
  • Added test with two CUs.
  • Updated some comments.
  • Removed the -generate-typed-dwarf5-expr option, will only produce DW_OP_convert for Dwarf v5, for all prior versions the mask & shift expression is used. I suggest that we forget about DW_OP_GNU_convert and debugger tunings for this review. If that is really desired it can be added later in a separate patch.
Feb 22 2019, 4:52 AM · Restricted Project, debug-info

Feb 21 2019

markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.
  • updated to top of trunk to have the llvm-dwarfdump updates committed earlier today
  • updated tests and made additional improvements to llvm-dwarfdump
  • fixed segfault bug where we crashed on release builds but not debug builds (the allocation of DIEBaseTypeRef)
Feb 21 2019, 5:50 AM · Restricted Project, debug-info
markus committed rG76dda218a06e: [DebugInfo] Prep llvm-dwarfdump for typed DW5 ops. (authored by markus).
[DebugInfo] Prep llvm-dwarfdump for typed DW5 ops.
Feb 21 2019, 12:21 AM
markus committed rL354552: [DebugInfo] Prep llvm-dwarfdump for typed DW5 ops..
[DebugInfo] Prep llvm-dwarfdump for typed DW5 ops.
Feb 21 2019, 12:20 AM
markus closed D58442: llvm-dwarfinfo add support to decode DW_OP_convert.
Feb 21 2019, 12:20 AM · Restricted Project

Feb 20 2019

markus updated the diff for D58442: llvm-dwarfinfo add support to decode DW_OP_convert.

Added support for rudimentary verify of expressions (basically to check that a BaseTypeRef operand actually points to a DW_TAG_base_type DIE).

Feb 20 2019, 12:15 PM · Restricted Project
markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 20 2019, 11:21 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

+ Addressed review remark (use range-based loop instead of iterators).
+ Updated tests (probably forgot during last rebase. Verified the values used now with a clean master)

Feb 20 2019, 7:05 AM · Restricted Project, debug-info
markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

I have created a review for the requested 'llvm-dwarfdump' updates (the printing part) in https://reviews.llvm.org/D58442

Feb 20 2019, 6:10 AM · Restricted Project, debug-info
markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

I'm a touch confused by the whole discussion here - so I'll write some things & perhaps folks can correct my understanding where necessary.

I think that we all are. Maybe it is because we tried some many different approaches in the same review that it is a bit convoluted now.

The issue is that a location expression (either in a direct location, or in a loclist) needs to reference a DIE.

Correct.

Sounds like that DIE reference is necessarily CU-local (because we're talking about precomputing the offset - and we could only do that if it's CU-local).

Also correct. The spec says that the reference is an offset into the current CU.

We already emit other CU-local DIE references in attributes (eg: DW_AT_specification, etc) references with hardcoded 4 bytes in size- so why would it be problematic to emit this one in the same way (with a padded ULEB128 that we know will give us 4 bytes of offset to work with)?

Agree. It should be no more problematic than what is done in other places already. The 4 byte ULEB128 gives us 28 bits to encode the offset in but as reasoned in other comments there is no way that limit can be reached.

& yeah, maybe if someone wants to save us some size (at the cost of whatever computational complexity this invokes in the assembler) it could be replaced with label differences (doing label differences for all DIE references would be nifty for manual editing/mucking about with DWARF, but not a big deal).

Agree.

Feb 20 2019, 6:07 AM · Restricted Project, debug-info
markus updated the summary of D58442: llvm-dwarfinfo add support to decode DW_OP_convert.
Feb 20 2019, 5:37 AM · Restricted Project
markus created D58442: llvm-dwarfinfo add support to decode DW_OP_convert.
Feb 20 2019, 5:30 AM · Restricted Project

Feb 19 2019

markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 19 2019, 10:25 AM · Restricted Project, debug-info
markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 19 2019, 2:30 AM · Restricted Project, debug-info
markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 19 2019, 1:38 AM · Restricted Project, debug-info

Feb 18 2019

markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.
  • Did some cleanup
  • Added tests
  • Emit DW_OP_convert for Dwarf5
  • Emit legacy shift and mask expression for Dwarf4 and lower
  • Added llc option -generate-typed-dwarf5-expr to force emission regardless of targeted Dwarf version
Feb 18 2019, 2:35 AM · Restricted Project, debug-info

Feb 15 2019

markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

Addressed the inlined location expressions.

Feb 15 2019, 7:36 AM · Restricted Project, debug-info

Feb 13 2019

markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

NVPTX supports only DWARF2 and does not know anything about DWARF5 operations. Also, it does not support any type of the expression in the DWARF sections, except for <section_name>+-<int_offset>.

Feb 13 2019, 7:11 AM · Restricted Project, debug-info
markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

I see now that the inlined places i.e. these:

git grep addBlock.*DW_AT_location lib/CodeGen/AsmPrinter
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:    addBlock(*VariableDIE, dwarf::DW_AT_location, DwarfExpr->finalize());
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:        addBlock(*VariableDie, dwarf::DW_AT_location, DwarfExpr.finalize());
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp:  addBlock(*VariableDie, dwarf::DW_AT_location, DwarfExpr.finalize());
lib/CodeGen/AsmPrinter/DwarfUnit.cpp:        addBlock(ParamDIE, dwarf::DW_AT_location, Loc);

work quite differently and that will need some additional work.

Feb 13 2019, 6:40 AM · Restricted Project, debug-info
markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 13 2019, 12:32 AM · Restricted Project, debug-info

Feb 12 2019

markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 12 2019, 11:50 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

Removed Label from DIE (added DenseMap to CU and pass it around). Rebased to top of trunk.

Feb 12 2019, 2:47 AM · Restricted Project, debug-info

Feb 11 2019

markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 11 2019, 3:43 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

Addresses most of the open issues I had. The major question that remains is what to do when not targeting Dwarf v5.

Feb 11 2019, 3:33 AM · Restricted Project, debug-info

Feb 7 2019

markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 7 2019, 6:33 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

Updated to DW_OP_LLVM_convert as suggested, did the pretty printing and updated a bunch of llvm-lit tests to cope with the newly generated labels. Now the IR format looks like this:

!DIExpression(DW_OP_LLVM_convert, 16, DW_ATE_signed, DW_OP_LLVM_convert, 32, DW_ATE_signed, DW_OP_stack_value)

There are some open issues that I would like feedback on. I will add inline comments at those locations.

Feb 7 2019, 6:02 AM · Restricted Project, debug-info

Feb 6 2019

markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

All three of these operations expect a DW_TAG_basic_type as argument. So we could easily introduce a DW_OP_LLVM_basic_type <signedness> <bits> operation that gets expanded in AsmPrinter into DW_TAG_basic_types like you do now and thus avoid having to deal with TrackingMDRefs. This would also reduce the memory footprint of all DIExpressions that don't need a type argument.

Feb 6 2019, 6:46 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

Dropping all the metadata stuff and specifying the bit size and type encoding directly in the expression vector. e.g.

!DIExpression(DW_OP_convert, 8, 5, DW_OP_convert, 32, 5, DW_OP_stack_value)

This approach certainly has its advantages and require far less changes to existing code.

Feb 6 2019, 6:42 AM · Restricted Project, debug-info
markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 6 2019, 1:07 AM · Restricted Project, debug-info

Feb 5 2019

markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Feb 5 2019, 7:23 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.
Dwarf5 DW_OP_convert support.
Feb 5 2019, 7:17 AM · Restricted Project, debug-info
markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

If you choose this path, one way to solve the issue of what to do with the dangling types that are produced by the conversion operations would be to create them in a separate DICompileUnit with a compiler-generated name and location. This way the types should get uniqued automatically during LTO, and you don't need to worry about llvm-link & friends.

Feb 5 2019, 6:54 AM · Restricted Project, debug-info

Feb 4 2019

markus added a comment to D56587: Introduce DW_OP_LLVM_convert.

the type reference should be a metadata operand. Otherwise you'll need to implement support in llvm-link etc, too.
I would just implement the type reference as normal metadata operands in DIExpression and bake the knowledge that DW_OP_convert consumes one of the metadata operands into the DIExpression operand iterator.

Feb 4 2019, 5:44 AM · Restricted Project, debug-info

Feb 1 2019

markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

Time to switch the approach. This time try adding support for typed Dwarf5 stack ops such as DW_OP_convert.

Feb 1 2019, 6:37 AM · Restricted Project, debug-info

Jan 28 2019

markus added inline comments to D56587: Introduce DW_OP_LLVM_convert.
Jan 28 2019, 7:39 AM · Restricted Project, debug-info
markus updated the diff for D56587: Introduce DW_OP_LLVM_convert.

Insert DW_OP_deref_size in Prologue Epilogue Inserter.

Jan 28 2019, 7:33 AM · Restricted Project, debug-info

Jan 24 2019

markus added a comment to D57010: Fix sign/zero extension in Dwarf expressions (with pseudo ops).

Can you summarize what the advantage of the new operation as opposed to using DWARF 5 type conversions would be?

Jan 24 2019, 6:50 AM · Restricted Project, debug-info