Page MenuHomePhabricator
Feed Advanced Search

Today

dschuff added a comment to D80774: [WebAssembly] Add placeholders for R_WASM_TABLE_INDEX_REL_SLEB relocations.

ah right, i had forgotten that.

Fri, May 29, 11:27 AM · Restricted Project
dschuff accepted D80774: [WebAssembly] Add placeholders for R_WASM_TABLE_INDEX_REL_SLEB relocations.

no worries, I'm probably the right one to be reviewing this; I've thought a lot about linking, even if I didn't write any of this code :D

Fri, May 29, 10:21 AM · Restricted Project
dschuff added a comment to D80774: [WebAssembly] Add placeholders for R_WASM_TABLE_INDEX_REL_SLEB relocations.

speaking of which, can you also add the _REL_ relocations to the linking.md doc in tool-conventions?

Fri, May 29, 10:21 AM · Restricted Project

Yesterday

dschuff added a comment to D80572: [WebAssembly] Fix a bug in removing unnecessary branches.

oh also "WebbAssembly" in the CL title should be "WebAssembly"

Thu, May 28, 4:32 PM · Restricted Project
dschuff accepted D80571: [WebAssembly] Fix a bug in finding matching EH pad.
Thu, May 28, 4:32 PM · Restricted Project
dschuff accepted D80361: [lld][WebAssembly] Convert some lld tests to assembly.
Thu, May 28, 3:59 PM · Restricted Project
dschuff accepted D80572: [WebAssembly] Fix a bug in removing unnecessary branches.
Thu, May 28, 3:59 PM · Restricted Project

Tue, May 26

dschuff added a reviewer for D80512: [MC] Changes to help improve target specific symbol disassembly: aardappel.
Tue, May 26, 10:53 AM · Restricted Project

Thu, May 21

dschuff added a comment to D80019: [WebAssembly] Fixed debugloc in DebugFixup pass.

If there's a difference between wouter's clang-format output and heejin's / the bots, it could be that the default clang-format on debian is really old. that's an issue I've seen before.

Thu, May 21, 4:48 PM · Restricted Project
dschuff added a comment to D80361: [lld][WebAssembly] Convert some lld tests to assembly.

https://sourceware.org/binutils/docs/as/ is my go-to reference for assembly.

Thu, May 21, 2:05 PM · Restricted Project
dschuff accepted D80361: [lld][WebAssembly] Convert some lld tests to assembly.
Thu, May 21, 1:32 PM · Restricted Project
dschuff added inline comments to D80361: [lld][WebAssembly] Convert some lld tests to assembly.
Thu, May 21, 12:59 PM · Restricted Project
dschuff added inline comments to D80361: [lld][WebAssembly] Convert some lld tests to assembly.
Thu, May 21, 12:59 PM · Restricted Project
dschuff accepted D80362: [WebAssembly] Warn on exception spec only when Wasm EH is used.

otherwise LGTM

Thu, May 21, 9:09 AM · Restricted Project

Mon, May 18

dschuff accepted D80061: [WebAssembly] Handle exception specifications.
Mon, May 18, 9:40 AM · Restricted Project

Fri, May 15

dschuff accepted D79655: [WebAssembly] Handle exception specifications.
Fri, May 15, 3:14 PM · Restricted Project
dschuff accepted D80021: [WebAssembly] Optimize splats of bitcasted vectors.

You know, it's pretty amazing that WebAssemblyISelLowering.cpp is as small as it is.

Fri, May 15, 11:57 AM · Restricted Project
dschuff accepted D80019: [WebAssembly] Fixed debugloc in DebugFixup pass.
Fri, May 15, 10:18 AM · Restricted Project
dschuff added a comment to D80019: [WebAssembly] Fixed debugloc in DebugFixup pass.

I guess the existing tests didnt catch this because the pop is still within the same subprogram. Did you see this just at the end of a function, or where?

Fri, May 15, 10:18 AM · Restricted Project

Thu, May 14

dschuff added a comment to D79428: [WebAssembly] Added Debug Fixup pass.

great, still LGTM

Thu, May 14, 1:36 PM · Restricted Project
dschuff added inline comments to D79428: [WebAssembly] Added Debug Fixup pass.
Thu, May 14, 1:03 PM · Restricted Project
dschuff added inline comments to D79428: [WebAssembly] Added Debug Fixup pass.
Thu, May 14, 11:57 AM · Restricted Project

Tue, May 12

dschuff accepted D79428: [WebAssembly] Added Debug Fixup pass.
Tue, May 12, 11:48 AM · Restricted Project

Mon, May 11

dschuff added a comment to D79655: [WebAssembly] Handle exception specifications.

Actually, would it be possible to not ignore throw() but make it an alias for noexcept(true)? Apparently that is the standard behavior in C++17, so it might make more sense to just implement that now rather than just warning all the time and ignoring it. It would also cover most of the cases that exist, so more users wouldn't need to disable the warning.

Mon, May 11, 2:01 PM · Restricted Project

Wed, May 6

dschuff accepted D79247: [lld][WebAssembly] Honor --allow-undefined for data symbols too.
Wed, May 6, 10:46 AM · Restricted Project

Tue, May 5

dschuff added inline comments to D79428: [WebAssembly] Added Debug Fixup pass.
Tue, May 5, 2:03 PM · Restricted Project
dschuff added a comment to D79247: [lld][WebAssembly] Honor --allow-undefined for data symbols too.

So the plan is to support unresolved-symbols and then eventually deprecate and remove this?

Tue, May 5, 1:31 PM · Restricted Project

Mon, May 4

dschuff accepted D79324: [WebAssembly] Fix block marker placing after fixUnwindMismatches.

Wow, did our one external partner test case trigger all of these?

Mon, May 4, 4:41 PM · Restricted Project

Apr 23 2020

dschuff added a comment to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.

We can definitely still talk about what you are trying to do, and it would probably be useful to have more folks involved. Opening an issue on https://github.com/WebAssembly/tool-conventions/ might be useful since it involves the conventions that LLVM and clang use. If it's specific to the web, then https://groups.google.com/forum/#!forum/emscripten-discuss could be another place (even if you don't plan on using emscripten's JS code).

Apr 23 2020, 1:00 PM · Restricted Project

Apr 20 2020

dschuff added a comment to D78441: Delete NaCl support.

@jfb thanks for the heads-up.
I replied on the mailing list thread.

Apr 20 2020, 1:33 PM · Restricted Project

Apr 16 2020

dschuff accepted D77353: [WebAssembly] Add DW_OP_WASM_location_int.

LGTM with one nit

Apr 16 2020, 3:37 PM · debug-info, Restricted Project

Apr 13 2020

dschuff accepted D77950: [WebAssembly] Fix try placement in fixing unwind mismatches.
Apr 13 2020, 2:41 PM · Restricted Project
dschuff updated subscribers of D77353: [WebAssembly] Add DW_OP_WASM_location_int.

If there really are only 32 codes available for all the user targets, then maybe we should just try to get away with only using one.

Apr 13 2020, 2:41 PM · debug-info, Restricted Project

Apr 9 2020

dschuff accepted D77784: [WebAssembly] Use dummy debug info in Emscripten SjLj.

LGTM
(I'll bet Call.getCalledFunction() returns nullptr if it's an indirect call)

Apr 9 2020, 1:50 PM · Restricted Project
dschuff added a comment to D77353: [WebAssembly] Add DW_OP_WASM_location_int.

@yurydelendik is that actually true? Concretely you are proposing that the form of DW_OP_Wasm_location be variadic instead of fixed, right? i.e. it has different fields based on the value of the first field. I don't think there is any precedent for that in DWARF anywhere, is there? e.g. there are different ops for OP_plus and OP_plus_uconst; or OP_call2 and OP_call4 could be just one op with a similar discriminator, but they are not. You could argue that even having OP_Wasm_location as it is (if it didn't need different forms) is inefficient because instead of the discriminator we could just use different ops, and make it smaller.

Apr 9 2020, 1:04 PM · debug-info, Restricted Project
dschuff added a comment to D77784: [WebAssembly] Use dummy debug info in Emscripten SjLj.

It just occurred to me, could we just mark the calls as non-inlineable? I assume we won't be running the inliner after this anyway. Or is that a property of the called function and not the callsite?
Anyway this approach seems ok to me too. It seems to me that there are other places we inject calls to runtime functions too; but I guess the others are mostly to imported functions and don't have this problem?

Apr 9 2020, 10:27 AM · Restricted Project

Apr 7 2020

dschuff added a comment to D77353: [WebAssembly] Add DW_OP_WASM_location_int.

@yurydelendik that would just take care of the encoding, the bigger question would be how to plumb symbol support into DwarfExpression (including the buffering path).

Apr 7 2020, 3:16 PM · debug-info, Restricted Project

Apr 6 2020

dschuff added a comment to D77465: [WebAssembly] Fix a sanitizer error in WasmEHPrepare.

LGTM

Apr 6 2020, 10:18 AM · Restricted Project

Apr 3 2020

dschuff added a comment to D77423: [WebAssembly] Fix wasm.lsda() optimization in WasmEHPrepare.

LGTM. I think IsFoo is probably fine even for plurals because it's a common convention as you say.
I guess if you wanted to be ultra-nitpicky-correct you could capitalize it as IsEHPadFunctionsSetUp (i.e. "set up" as 2 words instead of 1 since "setup" is a noun and "set up" is a verb phrase). But it's probably not worth bothering to change.

Apr 3 2020, 3:43 PM · Restricted Project
dschuff accepted D77423: [WebAssembly] Fix wasm.lsda() optimization in WasmEHPrepare.

I'm totally in favor of verbose commit descriptions :D
You can probably just remove the first paragraph.

Apr 3 2020, 12:57 PM · Restricted Project

Mar 31 2020

dschuff accepted D77181: [WebAssembly] Fix subregion relationship in CFGSort.
Mar 31 2020, 5:40 PM · Restricted Project

Mar 26 2020

dschuff committed rGe110897e28c3: [WEbAssembly] Clear frame base vreg in explicit-locals when stack pointer is… (authored by dschuff).
[WEbAssembly] Clear frame base vreg in explicit-locals when stack pointer is…
Mar 26 2020, 1:36 PM
dschuff closed D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead.
Mar 26 2020, 1:36 PM · Restricted Project

Mar 25 2020

dschuff added a comment to D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead.

No I mean alloca as in the LLVM instruction. Just having an address-taken local in C is enough to cause an alloca in the IR.

Mar 25 2020, 4:49 PM · Restricted Project
dschuff added a comment to D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead.

(FTR, the failure mode is the same assertion in MFI::getFrameBaseLocal() that we saw before)

Mar 25 2020, 3:44 PM · Restricted Project
dschuff added a reviewer for D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead: aardappel.

the IR to reproduce this is trivial but i'm still trying to reduce the debug info in the test. Basically this:

Mar 25 2020, 3:44 PM · Restricted Project
dschuff retitled D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead from Clear frame base vreg when it's dead to [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead.
Mar 25 2020, 3:44 PM · Restricted Project
dschuff retitled D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead from [WIP] Clear frame base vreg when it's dead to Clear frame base vreg when it's dead.
Mar 25 2020, 3:44 PM · Restricted Project
dschuff created D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead.
Mar 25 2020, 10:47 AM · Restricted Project

Mar 19 2020

dschuff committed rG08670d435bb4: [WebAssembly] Support swiftself and swifterror for WebAssembly target (authored by kateinoigakukun).
[WebAssembly] Support swiftself and swifterror for WebAssembly target
Mar 19 2020, 6:08 PM
dschuff closed D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target.
Mar 19 2020, 6:07 PM · Restricted Project
dschuff accepted D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target.

Thanks!

Mar 19 2020, 5:33 PM · Restricted Project

Mar 18 2020

dschuff added a comment to D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target.

I think the way you have it written here, it means that *all* swiftcc functions will end up with the extra parameters at the wasm level, and direct calls will also have the extra arguments. I think the test should also cover that (not just indirect calls), and I think the calling convention should be documented since it is basically the core of the swift ABI (even if you don't want to consider it stable yet). So at minimum there should be more explanation in the commit message and there should probably be a doc about the Swift ABI in https://github.com/WebAssembly/tool-conventions/ like there is for C.

Mar 18 2020, 11:57 AM · Restricted Project
dschuff accepted D70685: [WebAssembly] Fix the order of destructors in the LowerGlobalDtors pass..

Thanks; please also update the commit message to match your comment update.

Mar 18 2020, 11:24 AM · Restricted Project

Mar 17 2020

dschuff added a comment to D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target.

the diff context looks fine to me now, FWIW

Mar 17 2020, 10:43 AM · Restricted Project
dschuff added inline comments to D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target.
Mar 17 2020, 10:43 AM · Restricted Project

Mar 13 2020

dschuff added a comment to D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target.

I assume there's some kind of ABI doc that says how swiftself and swifterror are supposed to work and be lowered, is there one other than just the langref?

Mar 13 2020, 4:13 PM · Restricted Project
dschuff added a reviewer for D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target: dschuff.
Mar 13 2020, 4:13 PM · Restricted Project

Mar 12 2020

dschuff added a comment to D76049: [WebAssembly] Support swiftself and swifterror for WebAssembly target.

can you please upload this with full context (e.g. diff -U 999 or just use arcanist)?

Mar 12 2020, 5:42 PM · Restricted Project
dschuff accepted D76043: [WebAssembly] Fix SIMD shift unrolling to avoid assertion failure.
Mar 12 2020, 11:56 AM · Restricted Project

Mar 9 2020

dschuff accepted D75718: [WebAssembly] Fixed FrameBaseLocal not being set..

Yeah, let's just go ahead and land this. I think once this rolls we can enable DWARF with -g by default and start to get more feedback.

Mar 9 2020, 5:17 PM · Restricted Project
dschuff added a comment to D75718: [WebAssembly] Fixed FrameBaseLocal not being set..

Hm, that's too bad. In theory it seems like it ought to be possible to just remove all the debug info from the IR that's attached to functions (i.e. all the debug.declare/debug.values) and the debug metadata that's associated with all functions other than this one, since this is a completely function-local transform that really only depends on there being any CU information at all.
I've also sometimes had good luck with c-reduce to try to reduce it at the C level rather than the IR level. It might be worth a try.
Or maybe we've let this go long enough, and we could just say that we'll have coverage if we do any continuous builds of a reasonable test suite with debug info?

Mar 9 2020, 3:40 PM · Restricted Project

Mar 6 2020

dschuff accepted D75770: [WebAssembly] Add SIMD integer min/max builtins.
Mar 6 2020, 2:55 PM · Restricted Project

Mar 5 2020

dschuff added a comment to D75718: [WebAssembly] Fixed FrameBaseLocal not being set..

It's probably worth an attempt, and that sounds like the right approach. A crash bug like this is often not too hard to reduce with bugpoint; i.e. you'd start with clang using -emit-llvm to get the IR, and then let bugpoint reduce the IR.

Mar 5 2020, 6:03 PM · Restricted Project
dschuff added a comment to D75718: [WebAssembly] Fixed FrameBaseLocal not being set..

Yeah, this definitely looks like the likely fix. It's the spot where a local gets assigned that doesn't go through getLocalId. It seems to make sense to still allow this merging, as it would reduce the total number of locals. I guess it does mean that the frame base info would be incorrect when that register has the argument's value rather than the frame base's value, but presumably that would be ok, since the frame base should be live anytime a variable on the stack is live.

Mar 5 2020, 4:58 PM · Restricted Project

Mar 4 2020

dschuff committed rG928e9e172305: [lld][WebAssembly] Add support for --rsp-quoting (authored by sbc100).
[lld][WebAssembly] Add support for --rsp-quoting
Mar 4 2020, 11:49 AM
dschuff closed D75577: [lld][WebAssembly] Add support for --rsp-quoting.
Mar 4 2020, 11:49 AM · Restricted Project

Feb 28 2020

dschuff accepted D75322: [lld][WebAssembly] Handle mixed strong and weak undefined symbols.
Feb 28 2020, 9:10 AM · Restricted Project

Feb 21 2020

dschuff added inline comments to D74999: [WebAssembly] Fix a non-determinism problem in FixIrreducibleControlFlow.
Feb 21 2020, 4:11 PM · Restricted Project

Feb 14 2020

dschuff added a comment to D74656: [WebAssembly] Add section names for some DWARF5 sections.

Yes, that's really all I'm after here.
While I've got your attention, do you have any advice about best practices for debug info tests?
It seems like in this case kind of the minimal thing would be to take an existing small debug info test (which in many cases are clang-generated), switch the debug info version metadata tag to 5 and run it through llc. Or is there some simpler thing?

Feb 14 2020, 4:16 PM · Restricted Project
dschuff committed rG2504f14a0687: [WebAssembly] Add section names for some DWARF5 sections (authored by dschuff).
[WebAssembly] Add section names for some DWARF5 sections
Feb 14 2020, 3:53 PM
dschuff closed D74656: [WebAssembly] Add section names for some DWARF5 sections.
Feb 14 2020, 3:52 PM · Restricted Project
dschuff created D74656: [WebAssembly] Add section names for some DWARF5 sections.
Feb 14 2020, 3:34 PM · Restricted Project
dschuff accepted D74565: [WebAssembly] Remove unneeded getWasmKindForNamedSection function.

LGTM assuming removing this is what we want given D74531

Feb 14 2020, 3:16 PM · Restricted Project

Feb 13 2020

dschuff updated the diff for D73820: [llvm-strip][WebAssembly] Support strip flags.

Don't remove all custom sections with --strip-ally

Feb 13 2020, 5:16 PM · Restricted Project
dschuff added a comment to D73820: [llvm-strip][WebAssembly] Support strip flags.

Updated, please take a look.

Feb 13 2020, 10:43 AM · Restricted Project
dschuff updated the diff for D73820: [llvm-strip][WebAssembly] Support strip flags.

rebase, add comments to test expectations

Feb 13 2020, 10:43 AM · Restricted Project

Feb 11 2020

dschuff accepted D71632: [lld][WebAssembly] Fail if bitcode objects are pulled in after LTO.

FWIW this LGTM, especially if this is the same approach used in the other backends.

Feb 11 2020, 3:44 PM · Restricted Project
dschuff committed rGb2c44de956cc: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support (authored by dschuff).
[llvm-objcopy][WebAssembly] Add dump/add/remove-section support
Feb 11 2020, 3:26 PM
dschuff closed D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
Feb 11 2020, 3:26 PM · Restricted Project
dschuff added inline comments to D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
Feb 11 2020, 3:17 PM · Restricted Project

Feb 5 2020

dschuff committed rGf5f70d1c8fbf: Add missing directory from 3ec28da6 (authored by dschuff).
Add missing directory from 3ec28da6
Feb 5 2020, 3:52 PM
dschuff added a reverting change for rG4697e701b8cb: Partially revert "[LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly…: rGf5f70d1c8fbf: Add missing directory from 3ec28da6.
Feb 5 2020, 3:52 PM
dschuff added a comment to D72751: [LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging.

fixed in rGf5f70d1c8

Feb 5 2020, 3:51 PM · Restricted Project
dschuff added a comment to D72751: [LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging.

My bad, sorry about that.

Feb 5 2020, 3:39 PM · Restricted Project
dschuff committed rG3ec28da6d643: [LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging (authored by paolosev).
[LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging
Feb 5 2020, 2:54 PM
dschuff closed D72751: [LLDB] Add DynamicLoaderWasmDYLD plugin for WebAssembly debugging.
Feb 5 2020, 2:54 PM · Restricted Project
dschuff added a comment to D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.

Fixed the nit and added the test for dump-section and remove-section. The clang-format bot seems very confused, but I ran clang-format locally.

Feb 5 2020, 11:43 AM · Restricted Project
dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • Merge branch 'master' into objcopy-add-remove
  • Address comment, add test for dump+remove
Feb 5 2020, 11:02 AM · Restricted Project

Feb 4 2020

dschuff added a comment to D73943: [WebAssembly] Make stack pointer args inhibit tail calls.

The langref says (https://llvm.org/docs/LangRef.html#call-instruction) that the tail call marker implies that the callee does not access allocas from the caller. So it seems like it *should* mean that the backend can depend on this property (that you're checking for here). It also means that the frontend should guarantee it as best it knows how, and optimizations should not introduce it (or remove the attribute if they do?). There are lots of ways to sneak pointers into places (aliasing, going through memory, etc etc) so I'd expect the check in this CL to be brittle.

Feb 4 2020, 5:17 PM · Restricted Project
dschuff added a comment to D73943: [WebAssembly] Make stack pointer args inhibit tail calls.

It doesn't look like there's anything wasm-specific here. Surely this also inhibits tail calling in other backends too? Are frontends suppost to avoid putting 'tail call' in the IR in this case?

Feb 4 2020, 11:17 AM · Restricted Project

Jan 31 2020

dschuff created D73820: [llvm-strip][WebAssembly] Support strip flags.
Jan 31 2020, 4:25 PM · Restricted Project
dschuff updated the summary of D73820: [llvm-strip][WebAssembly] Support strip flags.
Jan 31 2020, 4:25 PM · Restricted Project
dschuff added a child revision for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support: D73820: [llvm-strip][WebAssembly] Support strip flags.
Jan 31 2020, 4:25 PM · Restricted Project
dschuff added inline comments to D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
Jan 31 2020, 10:45 AM · Restricted Project
dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • address review comments, clang-format
Jan 31 2020, 10:45 AM · Restricted Project

Jan 30 2020

dschuff added a comment to D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.

Rebased against master, and addressed all the comments; please take a look.

Jan 30 2020, 2:56 PM · Restricted Project
dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • comments, and fix file errors
  • dump section before removal
Jan 30 2020, 2:55 PM · Restricted Project
dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • Merge branch 'master' into objcopy-add-remove
  • Update for fixes in previous CL
Jan 30 2020, 11:03 AM · Restricted Project

Jan 29 2020

dschuff added a comment to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.

Relanded with a fix as rGf2af0607000c
I don't have a BE machine to test on, but I'm *pretty* sure it works :)

Jan 29 2020, 5:45 PM · Restricted Project