Page MenuHomePhabricator
Feed Advanced Search

Jul 18 2018

yurydelendik added a comment to D49446: [WebAssembly] Move .debug_line section address of dead function outside section range.

I believe for other architectures, when the linker emits debug info for a dead function, it treats relocations pointing a dead section as if it were pointing to address zero. Is there any reason to do that differnetly for wasm?

Jul 18 2018, 11:13 AM

Jul 17 2018

yurydelendik created D49446: [WebAssembly] Move .debug_line section address of dead function outside section range.
Jul 17 2018, 12:26 PM

Jul 16 2018

yurydelendik abandoned D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.

Per discussion at the WebAssembly toolchain meeting, this solution is too complex. I going to close this WIP in favor more simple solutions such as disabling debug info during optimization, or moving optimization out of the lld.

Jul 16 2018, 6:04 PM
yurydelendik added a comment to D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.

Do you happen to have a smaller/reduced reproducer?

Jul 16 2018, 4:41 PM · debug-info
yurydelendik added a project to D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass: debug-info.
Jul 16 2018, 4:39 PM · debug-info
yurydelendik updated the diff for D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.
  • Reducing the test case further: remove attributes, lifetime markers and non-"a" variable metadata.
  • Add test for MoveAndTeeForMultiUse changes
Jul 16 2018, 4:38 PM · debug-info
yurydelendik updated the diff for D48994: Update DBG_VALUE register operand during LiveInterval operations.

Reducing the test case further: remove attributes, lifetime markers and non-"a" variable metadata.

Jul 16 2018, 1:36 PM · debug-info
yurydelendik retitled D48994: Update DBG_VALUE register operand during LiveInterval operations from [WebAssembly] Update DBG_VALUE register operand during WebAssemblyOptimizeLiveIntervals pass to Update DBG_VALUE register operand during WebAssemblyOptimizeLiveIntervals pass.
Jul 16 2018, 9:12 AM · debug-info
yurydelendik updated the diff for D48994: Update DBG_VALUE register operand during LiveInterval operations.
  • Use valueOut() instead of valueDefined()
  • Make the debug value special case more obvious
Jul 16 2018, 9:11 AM · debug-info

Jul 11 2018

yurydelendik updated the diff for D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.

Fix DBG_VALUE instruction cloning.

Jul 11 2018, 6:29 PM · debug-info

Jul 9 2018

yurydelendik updated the diff for D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.

Changes:

  • add asserts for MI
  • run clang-format
  • comment rewording
Jul 9 2018, 7:30 AM · debug-info

Jul 6 2018

yurydelendik added a parent revision for D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass: D48994: Update DBG_VALUE register operand during LiveInterval operations.
Jul 6 2018, 10:05 AM · debug-info
yurydelendik added a child revision for D48994: Update DBG_VALUE register operand during LiveInterval operations: D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.
Jul 6 2018, 10:05 AM · debug-info
yurydelendik created D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.
Jul 6 2018, 10:04 AM · debug-info

Jul 5 2018

yurydelendik retitled D48994: Update DBG_VALUE register operand during LiveInterval operations from Update DBG_VALUE register operand during WebAssemblyOptimizeLiveIntervals pass to [WebAssembly] Update DBG_VALUE register operand during WebAssemblyOptimizeLiveIntervals pass.
Jul 5 2018, 2:16 PM · debug-info
yurydelendik created D48994: Update DBG_VALUE register operand during LiveInterval operations.
Jul 5 2018, 1:41 PM · debug-info

Jun 7 2018

yurydelendik added a comment to D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.

What I meant is to continue using the bytecode offset as before, but count "bytecode offset" in the fully expanded form instead of the raw in-file form. So, any LEB128 number is counted as 5 byte long. Then, that "virtual bytecode offset" should exactly match the original, uncompressed byte code offset, eliminating the need of adjusting any byte offset in DWARF.

Jun 7 2018, 3:45 PM
yurydelendik added a comment to D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.

There's no notion of "PC" in wasm, no? You cannot take an address of a function and call it indirectly later. Well, you can do that, but what you get is not an address in the regular mean. It's an index, if I understand correctly. So, by PC, what do you mean?

Jun 7 2018, 3:34 PM
yurydelendik added a comment to D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.

It looks like your patch recognizes all DWARF records that contains in-file offsets to adjust them. Is this the right approach? If DWARF is extended (that happens fairly frequently), do you have to make a change to the linker to produce non-broken debug info? If that's the case, I think it is too fragile.

Jun 7 2018, 3:20 PM
yurydelendik updated the diff for D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.

Update comments

Jun 7 2018, 2:38 PM
yurydelendik added a comment to D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.

I there a way we can avoid needing to do this at all? How about we simply don't allow LEB compression and dwarf in the same output? It seems OK if building with dwarf in them don't have this optimization.

Jun 7 2018, 2:18 PM
yurydelendik retitled D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization from [WebAssembly] Update .debug_line section PC addresses during LEB optimization to [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.
Jun 7 2018, 1:00 PM
yurydelendik updated the diff for D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.

Formatting

Jun 7 2018, 12:37 PM
yurydelendik created D47901: [WIP] [WebAssembly] Update .debug_line section PC addresses during LEB optimization.
Jun 7 2018, 12:34 PM

May 22 2018

yurydelendik accepted D47238: [WebAssembly] Fix crash when relocation synbol is not live.

Looks good. Thank you.

May 22 2018, 6:03 PM
yurydelendik accepted D47226: [WebAssembly] Remove dead code from LEB compression pass. NFC..

lgtm

May 22 2018, 1:49 PM
yurydelendik added a comment to D47204: [WebAssembly] Properly calculate function body offset, and write I32 values..

The test at D46416 tests this -- it was a luck that the unset buffer (Buf) contains mostly right values.

May 22 2018, 11:13 AM
yurydelendik added a comment to D47204: [WebAssembly] Properly calculate function body offset, and write I32 values..

Yes, is does. Large binary demo I have now runs without issue.

May 22 2018, 10:11 AM
yurydelendik created D47204: [WebAssembly] Properly calculate function body offset, and write I32 values..
May 22 2018, 9:35 AM

May 16 2018

yurydelendik accepted D46970: [WebAssembly] MC: Ensure that FUNCTION_OFFSET relocations are always against function symbols..

looks good

May 16 2018, 1:09 PM

May 15 2018

yurydelendik added a comment to D46763: [WebAssembly] Provide WasmFunction content offset informatin..

Yes, please.

May 15 2018, 12:34 PM
yurydelendik updated the diff for D46765: [WebAssembly] Fix R_WEBASSEMBLY_FUNCTION_OFFSET_I32 relocation entries.

Remove getFunctionBody()

May 15 2018, 11:47 AM
yurydelendik added inline comments to D46763: [WebAssembly] Provide WasmFunction content offset informatin..
May 15 2018, 11:05 AM

May 14 2018

yurydelendik added inline comments to D46765: [WebAssembly] Fix R_WEBASSEMBLY_FUNCTION_OFFSET_I32 relocation entries.
May 14 2018, 11:33 AM

May 11 2018

yurydelendik added a parent revision for D46765: [WebAssembly] Fix R_WEBASSEMBLY_FUNCTION_OFFSET_I32 relocation entries: D46763: [WebAssembly] Provide WasmFunction content offset informatin..
May 11 2018, 11:35 AM
yurydelendik added a child revision for D46763: [WebAssembly] Provide WasmFunction content offset informatin.: D46765: [WebAssembly] Fix R_WEBASSEMBLY_FUNCTION_OFFSET_I32 relocation entries.
May 11 2018, 11:35 AM
yurydelendik created D46765: [WebAssembly] Fix R_WEBASSEMBLY_FUNCTION_OFFSET_I32 relocation entries.
May 11 2018, 11:34 AM
yurydelendik created D46763: [WebAssembly] Provide WasmFunction content offset informatin..
May 11 2018, 11:26 AM

May 7 2018

yurydelendik created D46543: [WebAssembly] Ensure all .debug_XXX section has proper symbol names.
May 7 2018, 12:16 PM

May 4 2018

yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Remove isa<SectionSymbol> check

May 4 2018, 4:04 PM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Remove cast<SectionSymbol>

May 4 2018, 1:51 PM
yurydelendik retitled D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files from Linking debug (DWARF) sections from the WebAssembly object files to [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.
May 4 2018, 1:49 PM

May 3 2018

yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Remove startswith(".debug") checks
Rename SectionSymbolIndices

May 3 2018, 3:21 PM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Refactor SectionSymbol (remove CombinedSection and DefinedSection)
Remove InternedStrings
Review items

May 3 2018, 1:56 PM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Move CombinedSectionSymbols creation
Add test

May 3 2018, 10:50 AM

May 2 2018

yurydelendik added inline comments to D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.
May 2 2018, 5:37 PM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Simplify assignSymtab for CombinedSectionSymbols
Fix createCustomSections for non-referred sections

May 2 2018, 5:32 PM
yurydelendik accepted D46297: [MC] Add MCObjectStreamer::addFragmentAtoms and use it with MachO and WebAssembly.

Looks good.

May 2 2018, 3:04 PM
yurydelendik accepted D46335: [WebAssembly] MC: Create and use first class section symbols.

Looks good to me. Thanks

May 2 2018, 11:53 AM
yurydelendik added inline comments to D46335: [WebAssembly] MC: Create and use first class section symbols.
May 2 2018, 8:23 AM

May 1 2018

yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Remove tracking of InputSection from Symtab.

May 1 2018, 6:02 AM

Apr 27 2018

yurydelendik added inline comments to D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.
Apr 27 2018, 11:37 AM

Apr 26 2018

yurydelendik added inline comments to D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.
Apr 26 2018, 4:47 PM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Rename SyntheticSection
Remove UndefinedSection
Add getFunctionInputOffset
Rebase

Apr 26 2018, 4:42 PM
yurydelendik accepted rL330984: [LLD][WASM] Handle WASM_SYMBOL_TYPE_SECTION in toString()..

The change is good (and looks identical to one in D45118). Thank you

Apr 26 2018, 1:19 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Remove TODOs
Rebase on top of D46092

Apr 26 2018, 11:40 AM

Apr 25 2018

yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Rebase on top of D45795

Apr 25 2018, 5:57 PM
yurydelendik added inline comments to D44184: Write DWARF data into WASM object file.
Apr 25 2018, 4:38 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Replace SectionIndex (with ElementIndex)

Apr 25 2018, 4:33 PM
yurydelendik accepted D46092: [WebAssembly] Implement getRelocationValueString().

Looks good

Apr 25 2018, 4:15 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Rebase to D45980 attempt.

Apr 25 2018, 3:11 PM

Apr 23 2018

yurydelendik added a comment to D45980: [WebAssembly] Use section index in relocation section header.

Looks good to me. Does it make sense to check/assert in parseRelocSection what type of section is referred to -- just to ensure we are dealing with CODE and DATA sections (while we have multiple reloc section formats in the wild)?

Apr 23 2018, 5:42 PM

Apr 19 2018

yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Fix debug-info.ll test -- custom section sizes

Apr 19 2018, 10:25 AM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Remove .Lsection_start from obj reader
Fix debug section filter

Apr 19 2018, 10:15 AM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Remove isDebug and simplify SectionName

Apr 19 2018, 10:06 AM

Apr 18 2018

yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Remove "Debug information is not supported" comment.

Apr 18 2018, 2:27 PM

Apr 16 2018

yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Add dwarfdump test

Apr 16 2018, 5:07 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Rebase at D45579

Apr 16 2018, 2:18 PM
yurydelendik added inline comments to D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.
Apr 16 2018, 2:12 PM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Rebase at D45579.
Address review comments.

Apr 16 2018, 2:10 PM

Apr 13 2018

yurydelendik accepted D45648: [WebAssembly] Fix a bug in MachineBasicBlock::findDebugLoc() call.

This makes sense. Thank you for the patch.

Apr 13 2018, 5:14 PM

Apr 12 2018

yurydelendik added inline comments to D44184: Write DWARF data into WASM object file.
Apr 12 2018, 3:51 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Addresses recordRelocation review
Removes WasmCustomSectionKind

Apr 12 2018, 3:51 PM
yurydelendik retitled D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files from Initial propototype for mergin (custom) debug sections with DWARF format. to Linking debug (DWARF) sections from the WebAssembly object files.
Apr 12 2018, 2:40 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Fix test/tools/llvm-objdump/wasm.txt and test/MC/WebAssembly/debug-info.ll tests

Apr 12 2018, 1:05 PM
yurydelendik accepted D45580: [WebAssembly] Match llvm change to custom section size.

LGTM

Apr 12 2018, 11:41 AM
yurydelendik accepted D45579: [WebAssembly] libObject: Don't include the name the size of custom sections.

Looks good to me. I would also add error check to ensure that name fits into the section.

Apr 12 2018, 11:39 AM
yurydelendik added inline comments to D44184: Write DWARF data into WASM object file.
Apr 12 2018, 11:18 AM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Rebase on top of D45340

Apr 12 2018, 10:36 AM

Apr 10 2018

yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Fix tests at test/MC/WebAssembly/

Apr 10 2018, 5:46 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Rebase on top of D45297

Apr 10 2018, 2:30 PM

Apr 9 2018

yurydelendik accepted D45340: [WebAssembly] Add support for user-defined custom sections.

Looks good to me (from D45118 point of view)

Apr 9 2018, 1:51 PM

Apr 5 2018

yurydelendik added inline comments to D44184: Write DWARF data into WASM object file.
Apr 5 2018, 7:07 PM
yurydelendik added inline comments to D44184: Write DWARF data into WASM object file.
Apr 5 2018, 6:01 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Update style via clang-format
Review fixes

Apr 5 2018, 5:56 PM
yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

Don't export DefinedSection symbols.

Apr 5 2018, 11:44 AM
yurydelendik added a comment to D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

If its OK with you I'm going to try and split off the generic custom section handling and land that first. See https://reviews.llvm.org/D45297

Apr 5 2018, 10:52 AM

Apr 3 2018

yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Fixes llvm-dwarfdump tools for wasm files w/DWARF sections

Apr 3 2018, 6:00 PM
yurydelendik added a comment to D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

For a patch like this, I'd like to know the overview of the debug story in the wasm world first, so that I can review this patch in that story line. I can imagine a lot of different strategies to enable debug info for wasm... I'd be really helpful if you share your plan.

Apr 3 2018, 7:07 AM

Apr 2 2018

yurydelendik updated the diff for D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.

extract getFunctionSizeLength

Apr 2 2018, 9:13 AM

Mar 30 2018

yurydelendik created D45118: [WebAssembly] Linking debug (DWARF) sections from WebAssembly object files.
Mar 30 2018, 5:58 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Use proper symbol offset when hoisting symbols.

Mar 30 2018, 5:52 PM

Mar 29 2018

yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Fix patching relocations for custom/debug sections.
Fix code style

Mar 29 2018, 6:29 PM

Mar 15 2018

yurydelendik added inline comments to D44184: Write DWARF data into WASM object file.
Mar 15 2018, 6:36 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Changes std::unordered_set to StringSet
Comment for patching XXX_OFFSET_I32 relocations
Minor fixes for reading section symbols

Mar 15 2018, 6:34 PM
yurydelendik updated the diff for D44448: Add DebugLoc information to WebAssembly block and loop..

Move test to the test/DebugInfo/WebAssembly and add C code source.

Mar 15 2018, 12:59 PM
yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Update obj2yaml/yaml2obj support for custom DWARF sections

Mar 15 2018, 12:28 PM
yurydelendik added inline comments to D44184: Write DWARF data into WASM object file.
Mar 15 2018, 10:44 AM

Mar 14 2018

yurydelendik updated the diff for D44184: Write DWARF data into WASM object file.

Update llvm-readobj to support reading section symbols and new relocations.

Mar 14 2018, 5:42 PM
yurydelendik updated the diff for D44448: Add DebugLoc information to WebAssembly block and loop..

Add test description.

Mar 14 2018, 11:23 AM