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

US-Pacific timezone.

Recent Activity

Yesterday

dschuff added a comment to D43675: [WebAssembly] Rename imported/exported memory symbol to __linear_memory.

I like the idea of a consistent naming scheme with double-underscores for all of those special symbols. I also don't see any reason emscripten shouldn't use those names too. If it's easier, we could just prepare both an emscripten and an LLVM change and land them more-or-less at the same time and avoid a 3-stage process.

Fri, Sep 21, 8:54 AM

Fri, Sep 14

dschuff added a comment to D52105: [WebAssembly] Add V128 value type to binary format.

Is this enough to add SIMD to one of our existing binary-format tests?

Fri, Sep 14, 11:31 AM
dschuff added a comment to D52108: [WebAssembly] Handle V128RegClass in more places.

Are there tests that trigger these? It might make sense to add a case at least to the explicit locals and reg stackify. Probably fast-isel support should be a separate change (you can take the existing SIMD tests and run the same test, forcing fast-isel as some of the other tests do)

Fri, Sep 14, 11:28 AM

Wed, Sep 12

dschuff accepted D51991: [WebAssembly] Make tied inline asm operands work again.
Wed, Sep 12, 11:50 AM

Thu, Sep 6

dschuff abandoned D51745: Pass unittest binary name to getInputFileDirectory() for NativeSymbolReuseTest.
Thu, Sep 6, 2:13 PM
dschuff added a comment to D51745: Pass unittest binary name to getInputFileDirectory() for NativeSymbolReuseTest.

Yeah, rL341580 looks almost identical to this.

Thu, Sep 6, 2:13 PM
dschuff retitled D51745: Pass unittest binary name to getInputFileDirectory() for NativeSymbolReuseTest from Add libgtest_main as a dependency of libLLVMTestingSupport to Pass unittest binary name to getInputFileDirectory() for NativeSymbolReuseTest.
Thu, Sep 6, 2:03 PM
dschuff added a comment to D51745: Pass unittest binary name to getInputFileDirectory() for NativeSymbolReuseTest.

Passing it as a parameter does sound better.

Thu, Sep 6, 2:01 PM
dschuff updated the diff for D51745: Pass unittest binary name to getInputFileDirectory() for NativeSymbolReuseTest.
  • Pass the binary name as a parameter instead
Thu, Sep 6, 2:01 PM
dschuff created D51745: Pass unittest binary name to getInputFileDirectory() for NativeSymbolReuseTest.
Thu, Sep 6, 11:38 AM

Tue, Sep 4

dschuff accepted D51662: [WebAssembly] Made assembler only use stack instruction tablegen defs.

LGTM to ensure we are using the stack instructions.
It's unfortunate about the type index requirement. That will make it quite a pain to hand-write assembly files. It would be nice if we could eventually figure out a way to symbolize those like the wat format.

Tue, Sep 4, 4:04 PM
dschuff accepted D51447: [WebAssembly] clang-format (NFC).

I took another look at the diff, and it does seem like we are fairly close already. I agree that some of the changes to the switch statements aren't great, but on balance it's probably worthwhile to be able to just run clang-format and accept whatever it generates. I think we can go ahead and land this.

Tue, Sep 4, 2:49 PM

Fri, Aug 31

dschuff accepted D51448: [WebAssembly] clang-format (NFC).
Fri, Aug 31, 1:41 PM

Thu, Aug 30

dschuff abandoned D48495: [WIP] Atomic stores.
Thu, Aug 30, 3:48 PM
dschuff added inline comments to D51518: [WebAssembly] Add missing SIMD instruction attributes.
Thu, Aug 30, 3:16 PM
dschuff accepted D51498: [WebAssembly] Vector conversions.
Thu, Aug 30, 2:12 PM

Wed, Aug 29

dschuff added a comment to D51447: [WebAssembly] clang-format (NFC).

If we want to make concerted progress toward full clang-formattedness (I like the idea in general, but opinions sometimes differ on the value of that) we could do it one file at a time, to be landed before making some change to that file. That would be a sort of compromise; it would keep the changes small and manageable, but it would be a larger granularity and scope than what you'd strictly need if you were going to make a small change or just work on one component (which would mean faster progress).

Wed, Aug 29, 1:05 PM

Tue, Aug 28

dschuff added inline comments to D51383: [WebAssembly] SIMD loads and stores.
Tue, Aug 28, 3:02 PM
dschuff accepted D51371: [WebAssembly][NFC] Document stackifier tablegen backend.

otherwise LGTM

Tue, Aug 28, 11:38 AM
dschuff accepted D51320: [WebAssembly] Made disassembler only use stack instructions..
Tue, Aug 28, 10:39 AM

Mon, Aug 27

dschuff accepted D51241: [WebAssembly] Added default stack-only instruction mode for MC..

@aheejin the main thing is that the instructions are now converted from register to stack in MCInstLower. @aardappel were you also planning on moving ExplicitLocals to the end as before?

Mon, Aug 27, 7:52 AM

Aug 22 2018

dschuff accepted D51082: [WebAssembly] Arbitrary BUILD_VECTOR and remove i64x2.mul.
Aug 22 2018, 3:53 PM
dschuff accepted D51114: [WebAssembly] Don't write SP back when prolog is generated only for EH.
Aug 22 2018, 2:06 PM
dschuff added a comment to D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.

Otherwise LGTM, although I'm not an expert in DebugInfo either.

Aug 22 2018, 1:31 PM ยท debug-info
dschuff accepted D51116: [WebAssembly] Remove MachineFrameInfo arg from checking functions (NFC).
Aug 22 2018, 11:46 AM
dschuff added inline comments to D51114: [WebAssembly] Don't write SP back when prolog is generated only for EH.
Aug 22 2018, 11:26 AM
dschuff accepted D50919: [WebAssembly] Add hasSideEffects flag to catch instructions.
Aug 22 2018, 11:10 AM
dschuff added a comment to D43630: [Driver] Fix search paths on x32.

This should probably have some tests. It looks like there are some existing x32 tests in test/Driver/linux-header-search.cpp and test/Driver/cross-linux.c that might be relevant for updating.

Aug 22 2018, 8:56 AM

Aug 21 2018

dschuff accepted D51074: [WebAssembly] Change comments on SP writing back (NFC).
Aug 21 2018, 4:59 PM
dschuff accepted D50873: [WebAssembly] v128.const.
Aug 21 2018, 1:54 PM
dschuff accepted D50980: [WebAssembly] Restore __stack_pointer after catch instructions.
Aug 21 2018, 1:49 PM
dschuff added inline comments to D50873: [WebAssembly] v128.const.
Aug 21 2018, 1:26 PM
dschuff added inline comments to D50980: [WebAssembly] Restore __stack_pointer after catch instructions.
Aug 21 2018, 11:21 AM
dschuff accepted D51046: [WebAssembly] Change writeSPToMemory to writeSPToGlobal (NFC).
Aug 21 2018, 11:21 AM

Aug 20 2018

dschuff accepted D51013: [WebAssembly] Revert type of wake count in atomic.wake to i32.
Aug 20 2018, 4:34 PM
dschuff accepted D51010: [WebAssembly] Revert type of wake count in atomic.wake to i32.
Aug 20 2018, 4:33 PM
dschuff accepted D50653: [WebAssembly] Add isEHScopeReturn instruction property.

This looks OK to me; I can't think of any good alternative to adding a new predicate. Fixing PEI directly would require having it check for particular instructions (wasm catchret), which we can't really do.

Aug 20 2018, 4:02 PM
dschuff added inline comments to D50980: [WebAssembly] Restore __stack_pointer after catch instructions.
Aug 20 2018, 3:36 PM
dschuff accepted D50654: [WebAssembly] Don't make wasm cleanuppads into funclet entries.
Aug 20 2018, 2:55 PM
dschuff accepted D50933: [WebAssembly] Remove an unused argument from writeSPToMemory (NFC).
Aug 20 2018, 2:53 PM

Aug 16 2018

dschuff accepted D48273: [WebAssembly] CFG stackify support for exception handling.
Aug 16 2018, 1:12 PM

Aug 15 2018

dschuff accepted D50794: [WebAssembly][NFC] Standardize SIMD multiclass format.
Aug 15 2018, 11:15 AM
dschuff added a comment to D50750: [WebAssembly] SIMD replace_lane.

Oops, retroactive LGTM

Aug 15 2018, 9:38 AM
dschuff committed rL339786: [WebAssembly] SIMD replace_lane.
[WebAssembly] SIMD replace_lane
Aug 15 2018, 9:19 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Aug 15 2018, 9:19 AM

Aug 14 2018

dschuff added a comment to D50750: [WebAssembly] SIMD replace_lane.

also please rebase against master.

Aug 14 2018, 5:34 PM
dschuff committed rL339744: [WebAssembly] SIMD Splats.
[WebAssembly] SIMD Splats
Aug 14 2018, 5:31 PM
dschuff closed D50741: [WebAssembly] SIMD Splats.
Aug 14 2018, 5:31 PM
dschuff accepted D50741: [WebAssembly] SIMD Splats.
Aug 14 2018, 5:07 PM
dschuff added inline comments to D48273: [WebAssembly] CFG stackify support for exception handling.
Aug 14 2018, 4:52 PM
dschuff added a comment to D50653: [WebAssembly] Add isEHScopeReturn instruction property.

Was the problem just that the PEI was inserting an epilog for every instruction that isReturn?

Aug 14 2018, 4:33 PM
dschuff added inline comments to D48273: [WebAssembly] CFG stackify support for exception handling.
Aug 14 2018, 4:27 PM

Aug 8 2018

dschuff added inline comments to D50423: [WebAssembly] Gate i64x2 and f64x2 on -wasm-enable-unimplemented.
Aug 8 2018, 2:33 PM
dschuff added inline comments to D50423: [WebAssembly] Gate i64x2 and f64x2 on -wasm-enable-unimplemented.
Aug 8 2018, 10:32 AM

Aug 7 2018

dschuff committed rL339186: [WebAssembly] Update SIMD binary arithmetic.
[WebAssembly] Update SIMD binary arithmetic
Aug 7 2018, 2:24 PM
dschuff closed D50292: [WebAssembly] Update SIMD binary arithmetic.
Aug 7 2018, 2:24 PM
dschuff accepted D50292: [WebAssembly] Update SIMD binary arithmetic.

Keeping MUL is fine for now. IIRC there was some discussion in the last CG in-person meeting about removing or changing it (e.g. probably not super-useful especially for small types due to the likelihood of overflow). Probably in cases where the spec is still in flux it makes sense for LLVM to match what V8 implements now, so we can test things end-to-end. Then when we settle on things we can just change LLVM (or do LLVM first to see whether a proposal is feasible).

Aug 7 2018, 2:20 PM

Aug 6 2018

dschuff committed rL339082: [WebAssembly] Replace SIMD expression types with V128.
[WebAssembly] Replace SIMD expression types with V128
Aug 6 2018, 4:17 PM
dschuff closed D50367: [WebAssembly] Replace SIMD expression types with V128.
Aug 6 2018, 4:17 PM
dschuff accepted D50367: [WebAssembly] Replace SIMD expression types with V128.
Aug 6 2018, 3:46 PM
dschuff accepted D49440: [WebAssembly] Enable atomic expansion for unsupported atomicrmws.

Great that the atomicexpandpass just works for this.

Aug 6 2018, 3:45 PM
dschuff added a comment to D46500: [WebAssembly] CFG sort support for exception handling.

LGTM With those changes.

Aug 6 2018, 3:31 PM
dschuff added inline comments to D50292: [WebAssembly] Update SIMD binary arithmetic.
Aug 6 2018, 2:38 PM
dschuff accepted D50287: [WebAssembly] --export should fetch lazy symbols.
Aug 6 2018, 12:36 PM

Aug 2 2018

dschuff added a comment to D49395: [WebAssembly] Support for atomic.wait / atomic.wake instructions.

Still looks good ๐Ÿ‘

Aug 2 2018, 2:25 PM

Aug 1 2018

dschuff accepted D49395: [WebAssembly] Support for atomic.wait / atomic.wake instructions.
Aug 1 2018, 4:58 PM
dschuff added a comment to D49395: [WebAssembly] Support for atomic.wait / atomic.wake instructions.

I would imagine that's already on Ben's plate to do sometime, but yes it should be changed to match JS.

Aug 1 2018, 4:55 PM
dschuff accepted D49396: [WebAssembly] Support for atomic.wait / atomic.wake builtins.
Aug 1 2018, 4:52 PM
dschuff accepted D49517: [WebAssembly] Ensure all bitcasts that would be invalid in wasm are removed by FixFunctionBitcasts pass.

I like this approach too, assuming it's sufficient to handle the CMake (and autoconf?) ugliness. I am a bit concerned that this pass will become a large and difficult-to-maintain pile of heuristics with different purposes, so I think we should be as clear as possible about what use cases we are trying to handle.
Other than the comment nit, the code looks fine too.

Aug 1 2018, 3:49 PM
dschuff accepted D49195: [WebAssembly] Support for a ternary atomic RMW instruction.
Aug 1 2018, 11:19 AM

Jul 31 2018

dschuff added a comment to D49395: [WebAssembly] Support for atomic.wait / atomic.wake instructions.

Note that in JS, atomics.wake is now atomics.notify (https://github.com/tc39/ecma262/pull/1220). So we should use the new terminology for new and internal stuff. Since there's no legacy yet (except maybe in Binaryen's and WABT's text parser) hopefully LLVM can just use "notify" everywhere.

Jul 31 2018, 5:33 PM
dschuff added inline comments to D49396: [WebAssembly] Support for atomic.wait / atomic.wake builtins.
Jul 31 2018, 4:36 PM

Jul 27 2018

dschuff accepted D49160: [WebAssembly] Added default stack-only instruction mode for MC..

\o/

Jul 27 2018, 1:23 PM

Jul 12 2018

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.

Jul 12 2018, 12:08 PM
dschuff added inline comments to D49208: [WebAssembly] Update WebAssemblyLowerEmscriptenEHSjLj to support separate compilation..
Jul 12 2018, 12:04 PM
dschuff added a reviewer for D49208: [WebAssembly] Update WebAssemblyLowerEmscriptenEHSjLj to support separate compilation.: aheejin.
Jul 12 2018, 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?

Jul 12 2018, 12:26 AM

Jul 9 2018

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

SGTM

Jul 9 2018, 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.

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

Jul 3 2018

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.

Jul 3 2018, 12:36 PM

Jul 2 2018

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

Otherwise LGTM

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

Jun 22 2018

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

Jun 21 2018

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

Jun 20 2018

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

Jun 20 2018, 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