Page MenuHomePhabricator

dschuff (Derek Schuff)
Yet Another Compiler Compiler

Projects

User does not belong to any projects.

User Details

User Since
Jan 7 2013, 9:35 AM (377 w, 1 d)

US-Pacific timezone.

Recent Activity

Thu, Mar 26

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…
Thu, Mar 26, 1:36 PM
dschuff closed D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead.
Thu, Mar 26, 1:36 PM · Restricted Project

Wed, Mar 25

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.

Wed, Mar 25, 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)

Wed, Mar 25, 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:

Wed, Mar 25, 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.
Wed, Mar 25, 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.
Wed, Mar 25, 3:44 PM · Restricted Project
dschuff created D76784: [WebAssembly] Clear frame base vreg in explicit-locals when stack pointer is dead.
Wed, Mar 25, 10:47 AM · Restricted Project

Thu, Mar 19

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

Thanks!

Thu, Mar 19, 5:33 PM · Restricted Project

Wed, Mar 18

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.

Wed, Mar 18, 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.

Wed, Mar 18, 11:24 AM · Restricted Project

Tue, Mar 17

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

the diff context looks fine to me now, FWIW

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

Fri, Mar 13

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?

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

Thu, Mar 12

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)?

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

Mon, Mar 9

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.

Mon, Mar 9, 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?

Mon, Mar 9, 3:40 PM · Restricted Project

Fri, Mar 6

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

Thu, Mar 5

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.

Thu, Mar 5, 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.

Thu, Mar 5, 4:58 PM · Restricted Project

Wed, Mar 4

dschuff committed rG928e9e172305: [lld][WebAssembly] Add support for --rsp-quoting (authored by sbc100).
[lld][WebAssembly] Add support for --rsp-quoting
Wed, Mar 4, 11:49 AM
dschuff closed D75577: [lld][WebAssembly] Add support for --rsp-quoting.
Wed, Mar 4, 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
dschuff committed rGf2af0607000c: [llvm-objcopy] Initial support for wasm in llvm-objcopy (authored by dschuff).
[llvm-objcopy] Initial support for wasm in llvm-objcopy
Jan 29 2020, 5:36 PM
dschuff committed rG5ea83eef4d6c: Revert "[llvm-objcopy] Initial support for wasm in llvm-objcopy" (authored by dschuff).
Revert "[llvm-objcopy] Initial support for wasm in llvm-objcopy"
Jan 29 2020, 1:14 PM
dschuff added a reverting change for rGa928d127a52a: [llvm-objcopy] Initial support for wasm in llvm-objcopy: rG5ea83eef4d6c: Revert "[llvm-objcopy] Initial support for wasm in llvm-objcopy".
Jan 29 2020, 1:13 PM
dschuff added a comment to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.

I won't have time to look at it today; i'll just revert and take a look tomorrow.

Jan 29 2020, 1:13 PM · Restricted Project

Jan 28 2020

dschuff accepted D73591: [NFC] Fix unused variable warning..
Jan 28 2020, 5:11 PM · Restricted Project
dschuff committed rGd966bf830fe1: [WebAssembly] Preserve debug frame base information through register coloring (authored by dschuff).
[WebAssembly] Preserve debug frame base information through register coloring
Jan 28 2020, 5:02 PM
dschuff closed D73581: [WebAssembly] Preserve debug frame base information through register coloring.
Jan 28 2020, 5:02 PM · Restricted Project
dschuff added a comment to D73581: [WebAssembly] Preserve debug frame base information through register coloring.

I'll go ahead and land this to reduce the number of cases where we crash; but I'd be interested in hearing if @yurydelendik has found any cases that were asserting before that this fixes, or if any of the wasm subscribers have other opinions.

Jan 28 2020, 4:52 PM · Restricted Project
dschuff updated the diff for D73581: [WebAssembly] Preserve debug frame base information through register coloring.
  • clang-format
Jan 28 2020, 4:44 PM · Restricted Project
dschuff added a reviewer for D73581: [WebAssembly] Preserve debug frame base information through register coloring: yurydelendik.
Jan 28 2020, 4:43 PM · Restricted Project
dschuff added a comment to D73591: [NFC] Fix unused variable warning..

How about just isa<WasmObjectFile>(&O) instead?

Jan 28 2020, 4:34 PM · Restricted Project
dschuff retitled D73581: [WebAssembly] Preserve debug frame base information through register coloring from [WIP] Preserve debug frame base information through register coloring to [WebAssembly] Preserve debug frame base information through register coloring.
Jan 28 2020, 4:34 PM · Restricted Project
dschuff updated the diff for D73581: [WebAssembly] Preserve debug frame base information through register coloring.
  • * When stackifying the frame base, unset frameBaseVreg
Jan 28 2020, 4:34 PM · Restricted Project
dschuff created D73581: [WebAssembly] Preserve debug frame base information through register coloring.
Jan 28 2020, 2:25 PM · Restricted Project
dschuff committed rGda6a896e6b1b: [WebAssembly] Add WebAssembly support to llvm-symbolizer (authored by dschuff).
[WebAssembly] Add WebAssembly support to llvm-symbolizer
Jan 28 2020, 10:02 AM
dschuff closed D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
Jan 28 2020, 10:02 AM · Restricted Project
dschuff added a comment to D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.

Thanks! sbc and aardappel are the relevant wasm experts here.

Jan 28 2020, 10:02 AM · Restricted Project
dschuff committed rGa928d127a52a: [llvm-objcopy] Initial support for wasm in llvm-objcopy (authored by dschuff).
[llvm-objcopy] Initial support for wasm in llvm-objcopy
Jan 28 2020, 9:51 AM
dschuff closed D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Jan 28 2020, 9:51 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • remove period, use doxygen comments
Jan 28 2020, 9:40 AM · Restricted Project

Jan 27 2020

dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • remove stray empty line
Jan 27 2020, 5:09 PM · Restricted Project
dschuff updated the diff for D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
  • Update test CHECKs to account for removing the blank line (turns out the code actually works :)
Jan 27 2020, 4:42 PM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Fix clang-tidy warning
Jan 27 2020, 4:06 PM · Restricted Project
dschuff updated the summary of D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
Jan 27 2020, 3:38 PM · Restricted Project
dschuff updated the diff for D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
  • review comments
Jan 27 2020, 3:32 PM · Restricted Project
dschuff added a comment to D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.

Thanks!

Jan 27 2020, 3:32 PM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Rename generateSectionHeader, clarify comments
Jan 27 2020, 3:29 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Jan 27 2020, 3:29 PM · Restricted Project

Jan 24 2020

dschuff committed rGc5bd3d07262f: Support Swift calling convention for WebAssembly targets (authored by kateinoigakukun).
Support Swift calling convention for WebAssembly targets
Jan 24 2020, 10:32 AM
dschuff closed D71823: Support Swift calling convention for WebAssembly targets.
Jan 24 2020, 10:32 AM · Restricted Project, Restricted Project

Jan 23 2020

dschuff updated the diff for D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
  • fix clang-tidy, add comment, fix whitespace
Jan 23 2020, 4:40 PM · Restricted Project
dschuff retitled D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer from [WIP] Add WebAssembly support to llvm-symbolizer to [WebAssembly] Add WebAssembly support to llvm-symbolizer.
Jan 23 2020, 3:52 PM · Restricted Project
dschuff updated the diff for D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
  • fix newline
Jan 23 2020, 3:41 PM · Restricted Project
dschuff updated the diff for D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
  • clang-format
Jan 23 2020, 3:41 PM · Restricted Project
dschuff updated the diff for D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
  • Add test and Fix WebAssemblyAsmParser to emit dwarf for all text sections
Jan 23 2020, 3:41 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Jan 23 2020, 9:05 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Rename generateSectionHeader, clarify comments
Jan 23 2020, 9:05 AM · Restricted Project
dschuff updated the diff for D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
  • remove debug print
Jan 23 2020, 7:52 AM · Restricted Project

Jan 22 2020

dschuff added a comment to D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.

@sbc100 I haven't added any tests yet but does this look like a reasonable use of the various Symbol/Ref types?

Jan 22 2020, 5:50 PM · Restricted Project
dschuff created D73246: [WebAssembly] Add WebAssembly support to llvm-symbolizer.
Jan 22 2020, 5:41 PM · Restricted Project
dschuff added a comment to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.

Hm, the bot seems to be using the wrong version of the patch.

Jan 22 2020, 3:40 PM · Restricted Project