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 (288 w, 3 d)

US-Pacific timezone.

Recent Activity

Thu, Jul 12

dschuff added a comment to D49263: [WebAssembly] Update WebAssemblyLowerEmscriptenEHSjLj to handle separate compilation.

I think I actually prefer the approach of linking this code in from a library rather than generating N copies of it. It's more consistent with how system code is usually included into programs (i.e. linking it in rather than generating it magically from the compiler). It's also easier to read and understand for non-compiler developers.

Thu, Jul 12, 12:08 PM
dschuff added inline comments to D49208: [WebAssembly] Update WebAssemblyLowerEmscriptenEHSjLj to support separate compilation..
Thu, Jul 12, 12:04 PM
dschuff added a reviewer for D49208: [WebAssembly] Update WebAssemblyLowerEmscriptenEHSjLj to support separate compilation.: aheejin.
Thu, Jul 12, 11:58 AM
dschuff accepted D49194: [WebAssembly] Add tests for weaker memory consistency orderings.

@jfb just as a sanity check, it should always be valid to just "upgrade" LLVM's orderings and select them all as the sequentially consistent wasm ops, right?

Thu, Jul 12, 12:26 AM

Mon, Jul 9

dschuff added a comment to D49088: [WebAssembly] Support for binary atomic RMW instructions.

SGTM

Mon, Jul 9, 3:35 PM
dschuff accepted D49088: [WebAssembly] Support for binary atomic RMW instructions.

There should also be a few tests that orderings other than seq_cst get selected.

Mon, Jul 9, 2:55 PM
dschuff accepted D49087: [WebAssembly] Improve readability of load/stores and tests. NFC..
Mon, Jul 9, 12:01 PM
dschuff accepted D46500: [WebAssembly] CFG sort support for exception handling.
Mon, Jul 9, 9:10 AM

Tue, Jul 3

dschuff added a comment to D46500: [WebAssembly] CFG sort support for exception handling.

This change is really quite nice and minimal other than the renaming.

Tue, Jul 3, 12:36 PM

Mon, Jul 2

dschuff accepted D48471: [WebAssembly] Add pass to infer prototypes for prototype-less functions.

Otherwise LGTM

Mon, Jul 2, 2:06 PM
dschuff accepted D48839: [WebAssembly] Support for atomic stores.
Mon, Jul 2, 1:04 PM

Fri, Jun 22

dschuff accepted D44134: [WebAssembly] Add WebAssemblyException information analysis.
Fri, Jun 22, 11:14 AM
dschuff planned changes to D48495: [WIP] Atomic stores.
Fri, Jun 22, 10:50 AM
dschuff created D48495: [WIP] Atomic stores.
Fri, Jun 22, 10:50 AM

Thu, Jun 21

dschuff added inline comments to D48443: [WebAssembly] Add no-prototype attribute to prototype-less C functions.
Thu, Jun 21, 3:15 PM
dschuff added inline comments to D48443: [WebAssembly] Add no-prototype attribute to prototype-less C functions.
Thu, Jun 21, 3:12 PM
dschuff added inline comments to D48443: [WebAssembly] Add no-prototype attribute to prototype-less C functions.
Thu, Jun 21, 2:10 PM

Wed, Jun 20

dschuff accepted D48404: Don't modify LibFuncs in DeadArgumentElimination or ArgumentPromotion.

A nit about the commit message: it's not just LTO passes that make assumptions about known library functions, lots of passes do. Also I might be just a little bit more explicit than "when statically linking libc" and make it "when including libc in LTO"
Otherwise LGTM

Wed, Jun 20, 5:18 PM

Jun 19 2018

dschuff accepted D46803: [WebAssembly] Add WebAssemblyLateEHPrepare pass.

OK, the pass looks good; don't know if @majnemer has any more feedback on this or D44134?

Jun 19 2018, 3:59 PM
dschuff added a comment to D44134: [WebAssembly] Add WebAssemblyException information analysis.

Looks pretty reasonable otherwise. I like the MIR unittest 👌

Jun 19 2018, 3:11 PM
dschuff added inline comments to D46803: [WebAssembly] Add WebAssemblyLateEHPrepare pass.
Jun 19 2018, 2:03 PM
dschuff accepted D48253: [WebAssembly] Fix liveness tracking info after drop insertion.
Jun 19 2018, 1:25 PM

Jun 18 2018

dschuff added inline comments to D48262: [WebAssembly] Add more utility functions.
Jun 18 2018, 5:26 PM
dschuff accepted D48263: [WebAssembly] Add WasmEHFuncInfo for unwind destination information.
Jun 18 2018, 5:18 PM
dschuff accepted D48262: [WebAssembly] Add more utility functions.

LGTM with the tweak to the comment.

Jun 18 2018, 5:17 PM
dschuff committed rL334999: [WebAssembly] Fixed disassembler unit test failure..
[WebAssembly] Fixed disassembler unit test failure.
Jun 18 2018, 5:07 PM
This revision was not accepted when it landed; it landed in state Needs Review.
Jun 18 2018, 5:07 PM
dschuff accepted D48300: [VPlan] Add Analysis and Core to LLVM_LINK_COMPONENTS.

Since it fixes the build and is a trivial change, I think you should just go ahead and commit this.

Jun 18 2018, 4:50 PM
dschuff accepted D48260: [WebAssembly] Make rethrow instruction take a target BB argument.

still LGTM

Jun 18 2018, 3:55 PM
dschuff added inline comments to D48262: [WebAssembly] Add more utility functions.
Jun 18 2018, 3:17 PM
dschuff accepted D48260: [WebAssembly] Make rethrow instruction take a target BB argument.

LGTM; I think this model definitely makes more sense in CFG-based IR.

Jun 18 2018, 3:08 PM
dschuff added inline comments to D48263: [WebAssembly] Add WasmEHFuncInfo for unwind destination information.
Jun 18 2018, 3:05 PM

Jun 14 2018

dschuff added inline comments to D48183: [WebAssembly] Modified tablegen defs to have 2 parallel instuction sets..
Jun 14 2018, 4:32 PM
dschuff accepted D48183: [WebAssembly] Modified tablegen defs to have 2 parallel instuction sets..

Otherwise LGTM

Jun 14 2018, 4:26 PM
dschuff added inline comments to D48183: [WebAssembly] Modified tablegen defs to have 2 parallel instuction sets..
Jun 14 2018, 1:04 PM
dschuff accepted D48178: [WebAssembly] Ignore explict section names for functions.

This does seem a little odd, but I think it makes sense given the special nature of functions in the wasm object format.

Jun 14 2018, 11:42 AM
dschuff accepted D48173: Revert "[MC] Factor MCObjectStreamer::addFragmentAtoms out of MachO streamer.".
Jun 14 2018, 10:14 AM

Jun 4 2018

dschuff committed rL333964: Simplified WebAssemblyAsmBackend by removing explicit ELF variant..
Simplified WebAssemblyAsmBackend by removing explicit ELF variant.
Jun 4 2018, 3:59 PM
dschuff closed D47745: Simplified WebAssemblyAsmBackend by removing explicit ELF variant..
Jun 4 2018, 3:59 PM
dschuff added inline comments to D47745: Simplified WebAssemblyAsmBackend by removing explicit ELF variant..
Jun 4 2018, 3:18 PM
dschuff accepted D47745: Simplified WebAssemblyAsmBackend by removing explicit ELF variant..

LGTM, we can remove any code relating to binary output with the ELF triple now. Hopefully not much longer before we can remove the ELF triple entirely.

Jun 4 2018, 3:17 PM
dschuff added a comment to D47727: [WebAssembly] Fix .td files after rL333900.

No worries; the WebAssembly target is still an "experimental" target and doesn't build by default (even you build "all" targets) unless you also add -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD. So this happens from time to time.

Jun 4 2018, 12:45 PM
dschuff accepted D47727: [WebAssembly] Fix .td files after rL333900.
Jun 4 2018, 9:58 AM

May 31 2018

dschuff accepted D47614: [WebAssembly] Hide new Wasm EH behind its feature flag.
May 31 2018, 5:54 PM
dschuff added a comment to D43746: [WebAssembly] Add Wasm exception handling prepare pass.

Yes, still LGTM

May 31 2018, 2:34 PM

May 29 2018

dschuff accepted D44090: [WebAssembly] Support instruction selection for catching exceptions.

Otherwise LGTM

May 29 2018, 4:46 PM
dschuff accepted D47047: MC: Remove redundant substr() call.
May 29 2018, 4:42 PM
dschuff accepted D44931: [WebAssembly] Use Windows EH instructions for Wasm EH.

LGTM assuming we are convinced for now that finding the rethrow block from the CatchSwitch will work. Does this need to wait until after https://reviews.llvm.org/D43746 or other CLs from that chain, or does it matter?

May 29 2018, 4:42 PM
dschuff accepted D43746: [WebAssembly] Add Wasm exception handling prepare pass.
May 29 2018, 4:34 PM
dschuff accepted D47398: [WebAssembly] MC: Add compile-twice test and fix corresponding bug.
May 29 2018, 4:16 PM
dschuff accepted D47086: [WebAssembly] Add more error checking to object file parsing.
May 29 2018, 10:34 AM

May 17 2018

dschuff added inline comments to D47005: [WebAssembly] Add functions for EHScopes.
May 17 2018, 2:46 PM
dschuff added inline comments to D47005: [WebAssembly] Add functions for EHScopes.
May 17 2018, 1:02 PM
dschuff added a comment to D43746: [WebAssembly] Add Wasm exception handling prepare pass.

The Wasm code looks good with the one comment so LGTM if @majnemer is OK with the modification to WinEHPrepare.

May 17 2018, 9:30 AM
dschuff accepted D45559: [WebAssembly] Add Wasm personality and isScopedEHPersonality().

Thanks for your patience on this, I really do think this is a big readability improvement.

May 17 2018, 9:14 AM

May 16 2018

dschuff accepted D46969: [WebAssembly] Remove unused headers in MCWasmObjectWriter.
May 16 2018, 2:33 PM
dschuff added a comment to D46977: [NFC] WebAssembly build fix.

LGTM, thanks

May 16 2018, 2:30 PM

May 15 2018

dschuff accepted D46556: [MC] Move MCAssembler::dump into the correct cpp file. NFC.

Also if you use the LINK_LLVM_DYLIB CMake mode (as our bots do) you should test the regular non-dylib static link build.

May 15 2018, 3:00 PM
dschuff accepted D45796: [WebAssembly] Support imports from custom module names.
May 15 2018, 2:55 PM

May 10 2018

dschuff added inline comments to D44090: [WebAssembly] Support instruction selection for catching exceptions.
May 10 2018, 5:13 PM
dschuff added inline comments to D43746: [WebAssembly] Add Wasm exception handling prepare pass.
May 10 2018, 4:33 PM
dschuff added a comment to D45559: [WebAssembly] Add Wasm personality and isScopedEHPersonality().

Let me clarify. So there are the two options:

  1. Use 'funclet' to only mean outlined funclet in AsmPrinter I guess @dschuff endorses this, right? I'm not sure what @majnemer meant. Actually this is what I first tried to do in this patch, but this seems to be a harder way now, because as I said, the term funclet is used to mean a lot of things and being used everywhere including both llvm and clang in all sorts of method names in comments, not only this personality functions.
  2. Leave the uses of 'funclet' as they are, delete usesWindowsEHInstructions function and change the uses of them back to isFuncletEHPersonality, and create something like usesFuncletLSDA to be used in the cases that only pertain to real outlined funclets. This seems to be less work, because we don't need to change the uses of 'funclet' everywhere...
May 10 2018, 3:30 PM
dschuff added inline comments to D45848: [WebAssembly] Initial Disassembler..
May 10 2018, 2:29 PM
dschuff accepted D46561: [WebAssembly] Create section start symbols automatically for all sections.
May 10 2018, 10:31 AM
dschuff accepted D46342: [WebAsembly] Update default triple in test files to wasm32-unknown-unkown..
May 10 2018, 10:27 AM
dschuff added a comment to D45559: [WebAssembly] Add Wasm personality and isScopedEHPersonality().

But currently the term 'use funclets', both in function names and comments / error messages, is being used to mean both 'use windows EH IR' and 'use outlined funclets' in the code.
Currently 'use funclet' can mean either thing in LLVM. But in wasm we only want the IR level behavior but not the outlining behavior. An example of the latter, which deals with the real function outlining, is this code preparing information for LSDA generation for funclets, which we are not gonna use in wasm.

May 10 2018, 8:26 AM

May 7 2018

dschuff added inline comments to D45559: [WebAssembly] Add Wasm personality and isScopedEHPersonality().
May 7 2018, 5:32 PM
dschuff accepted D46555: [WebAssembly] MC: Use existing MCSymbol.Index field rather than inventing extra mapping.
May 7 2018, 5:05 PM
dschuff added a comment to D45848: [WebAssembly] Initial Disassembler..

haven't looked at most of the code, but thought about the register operand issue.

May 7 2018, 4:54 PM
dschuff accepted D46289: [MC] ELFObjectWriter: Removing unneeded variable and cast. NFC..
May 7 2018, 12:13 PM

Apr 6 2018

dschuff accepted D45386: [WebAssembly] Enabled -triple=wasm32-unknown-unknown-wasm path using ELF directive parser..
Apr 6 2018, 2:14 PM

Apr 5 2018

dschuff added inline comments to D44184: Write DWARF data into WASM object file.
Apr 5 2018, 4:20 PM

Apr 4 2018

dschuff accepted D45280: WebAssembly: Never write more than 32-bits for WebAssembly::OPERAND_OFFSET32.

LGTM for the encoding... I hope the -1 offset wasn't being generated by the compiler though?

Apr 4 2018, 1:02 PM

Apr 2 2018

dschuff accepted D45183: [CodeGen]Add NoVRegs property on PostRASink and ShrinkWrap.
Apr 2 2018, 1:47 PM

Mar 30 2018

dschuff accepted D45103: [WebAssembly] Register wasm passes with the PassRegistry.
Mar 30 2018, 1:32 PM
dschuff committed rL328876: [WebAssembly] Refactor tablegen for store instructions (NFC).
[WebAssembly] Refactor tablegen for store instructions (NFC)
Mar 30 2018, 10:05 AM
dschuff closed D45064: [WebAssembly] Refactor tablegen for store instructions (NFC).
Mar 30 2018, 10:05 AM

Mar 29 2018

dschuff created D45064: [WebAssembly] Refactor tablegen for store instructions (NFC).
Mar 29 2018, 2:35 PM

Mar 28 2018

dschuff added inline comments to D44931: [WebAssembly] Use Windows EH instructions for Wasm EH.
Mar 28 2018, 4:20 PM
dschuff added a comment to D44931: [WebAssembly] Use Windows EH instructions for Wasm EH.

Otherwise it looks good to me, although @majnemer would know more about the subtleties of what IR actually gets generated.

Mar 28 2018, 3:59 PM

Mar 27 2018

dschuff added inline comments to D44931: [WebAssembly] Use Windows EH instructions for Wasm EH.
Mar 27 2018, 5:16 PM

Mar 21 2018

dschuff updated subscribers of rL328112: [WebAssembly] Suppress unused function warning for register name matcher.

Sorry about that. Although I'm confused though why setting 'ShouldEmitMatchRegisterName' (which I added right before commit when I saw this warning myself) (https://github.com/llvm-mirror/llvm/blob/master/lib/Target/WebAssembly/WebAssembly.td#L84) didn't work.

Mar 21 2018, 9:29 AM

Mar 20 2018

dschuff committed rL328057: [WebAssembly] Update torture compile test expectations.
[WebAssembly] Update torture compile test expectations
Mar 20 2018, 4:03 PM
dschuff committed rL328049: [WebAssembly] Strip threadlocal attribute from globals in single thread mode.
[WebAssembly] Strip threadlocal attribute from globals in single thread mode
Mar 20 2018, 3:04 PM
dschuff closed D44703: [WebAssembly] Strip threadlocal attribute from globals in single thread mode.
Mar 20 2018, 3:04 PM
dschuff updated the diff for D44703: [WebAssembly] Strip threadlocal attribute from globals in single thread mode.
  • add braces in else
Mar 20 2018, 3:02 PM
dschuff added inline comments to D44703: [WebAssembly] Strip threadlocal attribute from globals in single thread mode.
Mar 20 2018, 3:02 PM
dschuff updated the summary of D44703: [WebAssembly] Strip threadlocal attribute from globals in single thread mode.
Mar 20 2018, 2:28 PM
dschuff created D44703: [WebAssembly] Strip threadlocal attribute from globals in single thread mode.
Mar 20 2018, 2:27 PM
dschuff committed rL328028: [WebAssembly] Added initial AsmParser implementation..
[WebAssembly] Added initial AsmParser implementation.
Mar 20 2018, 1:09 PM
dschuff closed D44329: [WebAssembly] Added initial AsmParser implementation..
Mar 20 2018, 1:09 PM

Mar 19 2018

dschuff accepted D44329: [WebAssembly] Added initial AsmParser implementation..

LGTM.

Mar 19 2018, 4:10 PM

Mar 15 2018

dschuff added a comment to D44329: [WebAssembly] Added initial AsmParser implementation..

I think i'd be in favor of letting this patch go in as it is for now, since it uses our existing syntax, and then have a separate discussion of how to change it on tool-conventions.

Mar 15 2018, 4:02 PM
dschuff committed rL327673: [WebAssembly] Add DebugLoc information to WebAssembly block and loop..
[WebAssembly] Add DebugLoc information to WebAssembly block and loop.
Mar 15 2018, 3:09 PM
dschuff closed D44448: Add DebugLoc information to WebAssembly block and loop..
Mar 15 2018, 3:09 PM
dschuff added inline comments to D44184: Write DWARF data into WASM object file.
Mar 15 2018, 2:43 PM
dschuff accepted D44448: Add DebugLoc information to WebAssembly block and loop..

Do you want me to commit this?

Mar 15 2018, 2:31 PM
dschuff added a comment to D44448: Add DebugLoc information to WebAssembly block and loop..

Otherwise LGTM

Mar 15 2018, 10:34 AM

Mar 14 2018

dschuff added a comment to D44316: [WebAssembly] Demangle symbol names for use by the browser debugger.

I think the symbol table (and any names that actually have meaning to the compiler and/or linker) should be mangled names, and only the name section should have demangled names. I also think it makes sense for libObject to only use the symbol table and ignore the name section. In other words, the name section should be thought of as metadata or debug info and in that sense shouldn't be "trusted" to always be correct (although of course we should preserve it wherever we can).

Mar 14 2018, 10:48 AM

Mar 13 2018

dschuff accepted D44451: [WebAssembly] Fix expected contents of relocations with addends.

LGTM, and confirmed that it makes libcxx configure successfully.

Mar 13 2018, 5:50 PM