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 (402 w, 4 d)

US-Pacific timezone.

Recent Activity

Yesterday

dschuff accepted D88323: [WebAssembly] Check features before making SjLj vars thread-local.
Fri, Sep 25, 11:32 AM · Restricted Project
dschuff added inline comments to D88323: [WebAssembly] Check features before making SjLj vars thread-local.
Fri, Sep 25, 11:08 AM · Restricted Project

Thu, Sep 17

dschuff committed rG0ff28fa6a756: Support dwarf fission for wasm object files (authored by dschuff).
Support dwarf fission for wasm object files
Thu, Sep 17, 2:45 PM
dschuff closed D85685: Support dwarf fission for wasm object files.
Thu, Sep 17, 2:44 PM · Restricted Project, Restricted Project
dschuff updated the diff for D85685: Support dwarf fission for wasm object files.

rebase, address comment

Thu, Sep 17, 2:41 PM · Restricted Project, Restricted Project
dschuff added a comment to D73820: [llvm-strip][WebAssembly] Support strip flags.

Well it's been an interesting 6 months since I last looked at this patch!
Thanks for the thorough review, I think I've addressed all the feedback, please take a look.

Thu, Sep 17, 10:34 AM · Restricted Project
dschuff updated the diff for D73820: [llvm-strip][WebAssembly] Support strip flags.

Address feedback

Thu, Sep 17, 10:32 AM · Restricted Project

Wed, Sep 16

dschuff added a comment to D85685: Support dwarf fission for wasm object files.
Wed, Sep 16, 3:07 PM · Restricted Project, Restricted Project
dschuff added a comment to D85685: Support dwarf fission for wasm object files.

Seems reasonable. Do you think this way is cleaner than the way elf does it? Looks like ELF creates two different ELFWriter inside the ELFDwoObjectWriter subclass right?

Yeah, ELF splits ELFWriter out from ELFObjectWriter, and then instantiates it twice. It's all because ELFObjectWriter has to derive from MCObjectWriter which was clearly not designed with this in mind. I found the class split to be a bit awkward, but I don't really have strong feelings about it either way.

Wed, Sep 16, 3:04 PM · Restricted Project, Restricted Project

Tue, Sep 15

dschuff added a comment to D85685: Support dwarf fission for wasm object files.

OK, I think this is ready to review for real. Can you take another look?

Tue, Sep 15, 4:50 PM · Restricted Project, Restricted Project
dschuff retitled D85685: Support dwarf fission for wasm object files from [WIP] Support dwarf fission for wasm object files to Support dwarf fission for wasm object files.
Tue, Sep 15, 4:49 PM · Restricted Project, Restricted Project
dschuff updated the summary of D85685: Support dwarf fission for wasm object files.
Tue, Sep 15, 4:49 PM · Restricted Project, Restricted Project
dschuff updated the summary of D85685: Support dwarf fission for wasm object files.
Tue, Sep 15, 4:42 PM · Restricted Project, Restricted Project
dschuff updated the diff for D85685: Support dwarf fission for wasm object files.

upload the correct diff

Tue, Sep 15, 4:41 PM · Restricted Project, Restricted Project
dschuff updated the diff for D85685: Support dwarf fission for wasm object files.

Get the right sections in the objects, add tests

Tue, Sep 15, 4:39 PM · Restricted Project, Restricted Project
dschuff abandoned D87659: clang-format.

sorry, Arcanist snafu. This should have been included in a different change

Tue, Sep 15, 8:33 AM · Restricted Project

Mon, Sep 14

dschuff requested review of D87659: clang-format.
Mon, Sep 14, 6:12 PM · Restricted Project

Fri, Sep 11

dschuff added a comment to D77187: [lld][WebAssembly] Add initial support for -Map/--print-map.

@MaskRay ping

Fri, Sep 11, 5:43 PM · Restricted Project

Thu, Sep 10

dschuff accepted D87431: [WebAssembly] Set unreachable as canonical to permit disassembly.
Thu, Sep 10, 10:00 AM · Restricted Project

Tue, Sep 8

dschuff added a comment to D87258: [WebAssembly, LowerTypeTests] Fix control-flow integrity support.

(And yes, you are right that using metadata for this isn't strictly correct since metadata can be dropped. And I think you are also correct that we haven't added multiple table support for MC or the instruction definitions either).

Tue, Sep 8, 2:47 PM · Restricted Project
dschuff added a comment to D87258: [WebAssembly, LowerTypeTests] Fix control-flow integrity support.

Thanks @ddcc for the summary. Given that, I do think it makes sense to fix the current implementation before worrying about multiple tables.

Tue, Sep 8, 2:43 PM · Restricted Project
dschuff added a reviewer for D87258: [WebAssembly, LowerTypeTests] Fix control-flow integrity support: aardappel.

oh, and @sbc100 and @aardappel should probably be the ones to review the MC bits.

Tue, Sep 8, 9:33 AM · Restricted Project
dschuff added a comment to D87258: [WebAssembly, LowerTypeTests] Fix control-flow integrity support.

Hi, nice to hear from you, and thanks for the patch! I'm going to have to try to page-in all the vague knowledge I have about CFI, because I think it would be really good to get this working for real.

Tue, Sep 8, 9:31 AM · Restricted Project
dschuff accepted D87207: [WebAssembly] Fix fixEndsAtEndOfFunction for try-catch.
Tue, Sep 8, 9:17 AM · Restricted Project

Aug 20 2020

dschuff committed rG4e266eaf132f: Make DWARFExpression::GetLocationExpression public (authored by Eric).
Make DWARFExpression::GetLocationExpression public
Aug 20 2020, 3:15 PM
dschuff closed D86090: Make DWARFExpression::GetLocationExpression public.
Aug 20 2020, 3:14 PM · Restricted Project

Aug 11 2020

dschuff added inline comments to D85795: [WebAssembly][AsmParser] Name missing features in error message.
Aug 11 2020, 5:26 PM · Restricted Project
dschuff accepted D85795: [WebAssembly][AsmParser] Name missing features in error message.
Aug 11 2020, 4:56 PM · Restricted Project
dschuff added inline comments to D85764: [WebAssembly][NFC] Replace WASM with standard Wasm.
Aug 11 2020, 12:45 PM · Restricted Project

Aug 10 2020

dschuff updated the diff for D85685: Support dwarf fission for wasm object files.

Fix bad diff

Aug 10 2020, 4:08 PM · Restricted Project, Restricted Project
dschuff requested review of D85685: Support dwarf fission for wasm object files.
Aug 10 2020, 1:24 PM · Restricted Project, Restricted Project
dschuff accepted D85392: [WebAssembly][ConstantFolding] Fold fp-to-int truncation intrinsics.
Aug 10 2020, 12:27 PM · Restricted Project
dschuff accepted D85552: [WebAssembly] wasm64: fix memory.init operand types.
Aug 10 2020, 10:00 AM · Restricted Project

Jul 30 2020

dschuff added a comment to D77187: [lld][WebAssembly] Add initial support for -Map/--print-map.

Can we pick this up again?

Jul 30 2020, 1:03 PM · Restricted Project

Jul 28 2020

dschuff accepted D84724: [WebAssembly] Fix getBottom for loops.

LGTM!

Jul 28 2020, 11:05 AM · Restricted Project

Jul 7 2020

dschuff accepted D83278: [WebAssembly] Avoid scalarizing vector shifts in more cases.

This is a nice simplification.

Jul 7 2020, 10:32 AM · Restricted Project

Jul 6 2020

dschuff accepted D83106: [WebAssembly] 64-bit memory limits.
Jul 6 2020, 6:10 PM · Restricted Project

Jun 30 2020

dschuff accepted D82884: [lld][WebAssembly] Give better error message on bad archive member.
Jun 30 2020, 2:09 PM · Restricted Project
dschuff added inline comments to D82821: [WebAssembly] Added 64-bit memory.grow/size/init/copy/fill.
Jun 30 2020, 11:56 AM · Restricted Project, Restricted Project
dschuff added inline comments to D82884: [lld][WebAssembly] Give better error message on bad archive member.
Jun 30 2020, 11:56 AM · Restricted Project

Jun 29 2020

dschuff added inline comments to D82821: [WebAssembly] Added 64-bit memory.grow/size/init/copy/fill.
Jun 29 2020, 5:57 PM · Restricted Project, Restricted Project

Jun 25 2020

dschuff accepted D82130: [WebAssembly] Adding 64-bit versions of __stack_pointer and other globals.

Compiler changes LGTM

Jun 25 2020, 3:51 PM · Restricted Project, Restricted Project

Jun 23 2020

dschuff accepted D82346: [WebAssebmly] Fully disable 'protected' visibility.
Jun 23 2020, 9:38 AM · Restricted Project

Jun 22 2020

dschuff accepted D81977: [WebAssembly] Add support for externref to MC and wasm-ld.

oh i missed that it's tested in the initexprs.

Jun 22 2020, 3:35 PM · Restricted Project
dschuff added a comment to D82130: [WebAssembly] Adding 64-bit versions of __stack_pointer and other globals.

So the code LGTM, were you going to add to usertest.ll in this CL?

Jun 22 2020, 3:35 PM · Restricted Project, Restricted Project

Jun 19 2020

dschuff accepted D82217: [SVE] Remove calls to VectorType::getNumElements from WebASM.

The dependent revision in phabricator has the context, but please also add it to the commit description for this change (either directly or via a link) so that it will show up in git as well.

Jun 19 2020, 3:46 PM · Restricted Project

Jun 18 2020

dschuff committed rGc1709e5d90e6: Set appropriate host defines for building under emscripten (authored by dschuff).
Set appropriate host defines for building under emscripten
Jun 18 2020, 5:32 PM
dschuff closed D82121: Set appropriate host defines for building under emscripten.
Jun 18 2020, 5:31 PM · Restricted Project, Restricted Project
dschuff added a comment to D82130: [WebAssembly] Adding 64-bit versions of __stack_pointer and other globals.

Yeah I think a 64-bit version of userstack.ll makes sense. (a fork or a second set of CHECKs, whatever you think would be cleaner). There's also stack-alignment.ll which covers dynamic stack adjustment.

Jun 18 2020, 5:31 PM · Restricted Project, Restricted Project
dschuff added a reviewer for D82121: Set appropriate host defines for building under emscripten: JDevlieghere.

Just taking a guess on a reviewer...

Jun 18 2020, 1:38 PM · Restricted Project, Restricted Project
dschuff created D82121: Set appropriate host defines for building under emscripten.
Jun 18 2020, 1:08 PM · Restricted Project, Restricted Project
dschuff accepted D81962: [lld][WebAssembly] Allow ctors functions that return values.
Jun 18 2020, 1:06 PM · Restricted Project

Jun 17 2020

dschuff added inline comments to D81977: [WebAssembly] Add support for externref to MC and wasm-ld.
Jun 17 2020, 5:17 PM · Restricted Project

Jun 15 2020

dschuff accepted D81851: [WebAssembly] Remove TEEs when dests are unstackified.
Jun 15 2020, 2:23 PM · Restricted Project
dschuff added a comment to D81851: [WebAssembly] Remove TEEs when dests are unstackified.

This is indeed what I had in mind on the other CL.
... Do you think it makes sense/is actually better?

Jun 15 2020, 10:23 AM · Restricted Project

Jun 12 2020

dschuff updated subscribers of rG66042959590d: [WebAssembly] WebAssembly doesn't support "protected" visibility.
Jun 12 2020, 9:33 PM
dschuff accepted D81704: [WebAssembly] Adding 64-bit version of R_WASM_MEMORY_ADDR_* relocs.
Jun 12 2020, 5:42 PM · Restricted Project
dschuff added inline comments to D80769: [WebAssembly] Adding 64-bit versions of all load & store ops..
Jun 12 2020, 5:08 PM · Restricted Project
dschuff accepted D80769: [WebAssembly] Adding 64-bit versions of all load & store ops..

I think this is good now. If the Requires I mentioned above should actually go back in, it can be in a followup CL (presumably where we add MEMORY_SIZE_I64 and friends).

Jun 12 2020, 5:08 PM · Restricted Project
dschuff added a comment to D81758: [WebAssembly] Handle unstackified TEE dest in ExplicitLocals.

Maybe we could keep using "unstackify" as a verb and use "non-stackified" as an adjective. I like that better than "destackify" anyway.

Jun 12 2020, 3:58 PM · Restricted Project
dschuff added a comment to D81758: [WebAssembly] Handle unstackified TEE dest in ExplicitLocals.

(I'll use the term "de-stackify" as a verb to avoid confusion).
If fixUnwindMismatches de-stackifies the tee result, does that violate some kind of invariant? is it better to fix it up in fixUnwindMismatches?

Jun 12 2020, 2:49 PM · Restricted Project

Jun 11 2020

dschuff accepted D81628: [WebAssembly] Make BR_TABLE non-duplicable.

(discussed with @tlively offline). The root issue is that the br_table gets duplicated outside the wasm block that encloses the branch targets. That's what causes the irreducible control flow in this case. Because the target-independent passes that do the duplication can't reason about those wasm blocks (since we haven't done the analysis that places them until later in the pass pipeline) it probably just makes sense to use noduplicate, which is a stronger limitation than convergent.

Jun 11 2020, 1:15 PM · Restricted Project

Jun 4 2020

dschuff added inline comments to D80769: [WebAssembly] Adding 64-bit versions of all load & store ops..
Jun 4 2020, 1:51 PM · Restricted Project

Jun 3 2020

dschuff added a comment to D81055: [WebAssembly] Lower llvm.debugtrap properly.

Binaryen doesn't assume an unreachable is actually unreachable, the way C compilers do, does it? (and remove code before the unreachable)? I think it just knows that instructions that come after it are unreachable and removes those. I think it's ok once it's lowered to wasm unreachable; it really won't be able to return (and so Binaryen can do DCE), but that seems like a legit behavior for @llvm.debugtrap according to the langref.

Jun 3 2020, 4:02 PM · Restricted Project

Jun 2 2020

dschuff added inline comments to D80769: [WebAssembly] Adding 64-bit versions of all load & store ops..
Jun 2 2020, 5:02 PM · Restricted Project

Jun 1 2020

dschuff added a comment to D80930: [WebAssembly] Update test expectations.

LGTM

Jun 1 2020, 9:06 AM · Restricted Project

May 29 2020

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

ah right, i had forgotten that.

May 29 2020, 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

May 29 2020, 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?

May 29 2020, 10:21 AM · Restricted Project

May 28 2020

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

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

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

May 26 2020

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

May 21 2020

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.

May 21 2020, 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.

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

otherwise LGTM

May 21 2020, 9:09 AM · Restricted Project

May 18 2020

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

May 15 2020

dschuff accepted D79655: [WebAssembly] Handle exception specifications.
May 15 2020, 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.

May 15 2020, 11:57 AM · Restricted Project
dschuff accepted D80019: [WebAssembly] Fixed debugloc in DebugFixup pass.
May 15 2020, 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?

May 15 2020, 10:18 AM · Restricted Project

May 14 2020

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

great, still LGTM

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

May 12 2020

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

May 11 2020

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.

May 11 2020, 2:01 PM · Restricted Project

May 6 2020

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

May 5 2020

dschuff added inline comments to D79428: [WebAssembly] Added Debug Fixup pass.
May 5 2020, 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?

May 5 2020, 1:31 PM · Restricted Project

May 4 2020

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

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

May 4 2020, 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