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 (305 w, 6 d)

US-Pacific timezone.

Recent Activity

Fri, Nov 16

dschuff accepted D54652: [WebAssembly] replaced .param/.result by .functype.

otherwise LGTM!

Fri, Nov 16, 4:12 PM
dschuff accepted D54644: [WebAssembly] Cleanup unused declares in test code.
Fri, Nov 16, 12:39 PM
dschuff accepted D54637: [WebAssembly] Default to static reloc model.
Fri, Nov 16, 10:45 AM

Thu, Nov 15

dschuff added inline comments to D54571: [WebAssembly] Split BBs after throw instructions.
Thu, Nov 15, 3:14 PM
dschuff accepted D54571: [WebAssembly] Split BBs after throw instructions.

Otherwise LGTM

Thu, Nov 15, 1:33 PM

Wed, Nov 14

dschuff accepted D54249: [WebAssembly] Initial support for shared objects (-shared).
Wed, Nov 14, 10:17 AM
dschuff accepted D54490: [WebAssembly] Add support for dylink section in object format.
Wed, Nov 14, 10:11 AM

Tue, Nov 13

dschuff added inline comments to D54249: [WebAssembly] Initial support for shared objects (-shared).
Tue, Nov 13, 5:40 PM
dschuff accepted D54447: [WebAssembly] Fix broken assumption that all bitcasts are to functions types.
Tue, Nov 13, 11:09 AM
dschuff accepted D54096: [WebAssembly] Add support for the event section.

LGTM too. I realized I don't really like (or perhaps I just don't understand) the term "Attribute" where it's used in the spec, but it's fine for this code to match that.

Tue, Nov 13, 10:24 AM

Mon, Nov 12

dschuff added inline comments to D54447: [WebAssembly] Fix broken assumption that all bitcasts are to functions types.
Mon, Nov 12, 3:38 PM
dschuff added a comment to D54449: [compiler-rt][builtins][PowerPC] Enable builtins tests on PowerPC 64 bit LE .

Conceptually, COMPILER_RT_ABI is the calling convention used by all compiler-rt functions. It is explicitly used everywhere because it may be different from the default calling convention on some targets. In practice I believe it only affects ARM, where the calling convention uses ARM's soft-float ABI (where IIRC floats are passed in integer registers) even on targets that use the hard-float ABI by default. The compiler knows the calling conventions and emits the right code when it emits the libcalls, and the ABI declaration on the implementations causes the right calling convention to be used there. The unusual thing about the tests is that they locally declare the compiler-rt functions explicitly. So this declaration has to match the implementation. It may not matter for PPC but my recommendation would be "just use it everywhere in compiler-rt" for simplicity.

Mon, Nov 12, 3:20 PM

Fri, Nov 9

dschuff accepted D54360: [WebAssembly] Added WasmAsmParser..

otherwise lgtm

Fri, Nov 9, 4:25 PM
dschuff accepted D54353: [WebAssembly] Disable custom NaN payload tests.
Fri, Nov 9, 1:58 PM

Thu, Nov 8

dschuff added inline comments to D54249: [WebAssembly] Initial support for shared objects (-shared).
Thu, Nov 8, 10:49 AM

Wed, Nov 7

dschuff added inline comments to D54096: [WebAssembly] Add support for the event section.
Wed, Nov 7, 3:11 PM
dschuff added inline comments to D54096: [WebAssembly] Add support for the event section.
Wed, Nov 7, 1:21 PM

Tue, Nov 6

dschuff committed rL346249: [WebAssembly] Address review comments from r346248 [NFC].
[WebAssembly] Address review comments from r346248 [NFC]
Tue, Nov 6, 10:05 AM
dschuff committed rLLD346249: [WebAssembly] Address review comments from r346248 [NFC].
[WebAssembly] Address review comments from r346248 [NFC]
Tue, Nov 6, 10:05 AM
dschuff committed rLLD346248: [WebAssembly] Support creation and import of shared memories.
[WebAssembly] Support creation and import of shared memories
Tue, Nov 6, 10:03 AM
dschuff committed rL346248: [WebAssembly] Support creation and import of shared memories.
[WebAssembly] Support creation and import of shared memories
Tue, Nov 6, 10:03 AM
dschuff closed D54130: [WebAssembly] Support creation and import of shared memories.
Tue, Nov 6, 10:03 AM
dschuff committed rL346246: [WebAssembly] Add shared memory support to limits field.
[WebAssembly] Add shared memory support to limits field
Tue, Nov 6, 9:30 AM
dschuff closed D54131: [WebAssembly] Add shared memory support to limits field.
Tue, Nov 6, 9:30 AM

Mon, Nov 5

dschuff added a comment to D54131: [WebAssembly] Add shared memory support to limits field.

Object files currently import their memories, right? We should probably make that import shared when we use thread-model=posix.

Mon, Nov 5, 5:40 PM
dschuff added a dependency for D54130: [WebAssembly] Support creation and import of shared memories: D54131: [WebAssembly] Add shared memory support to limits field.
Mon, Nov 5, 5:38 PM
dschuff added a dependent revision for D54131: [WebAssembly] Add shared memory support to limits field: D54130: [WebAssembly] Support creation and import of shared memories.
Mon, Nov 5, 5:38 PM
dschuff removed a dependent revision for D54130: [WebAssembly] Support creation and import of shared memories: D54131: [WebAssembly] Add shared memory support to limits field.
Mon, Nov 5, 5:38 PM
dschuff removed a dependency for D54131: [WebAssembly] Add shared memory support to limits field: D54130: [WebAssembly] Support creation and import of shared memories.
Mon, Nov 5, 5:38 PM
dschuff added a dependency for D54131: [WebAssembly] Add shared memory support to limits field: D54130: [WebAssembly] Support creation and import of shared memories.
Mon, Nov 5, 5:38 PM
dschuff added a dependent revision for D54130: [WebAssembly] Support creation and import of shared memories: D54131: [WebAssembly] Add shared memory support to limits field.
Mon, Nov 5, 5:38 PM
dschuff created D54131: [WebAssembly] Add shared memory support to limits field.
Mon, Nov 5, 5:36 PM
dschuff created D54130: [WebAssembly] Support creation and import of shared memories.
Mon, Nov 5, 5:33 PM
dschuff added inline comments to D54096: [WebAssembly] Add support for the event section.
Mon, Nov 5, 10:17 AM

Fri, Nov 2

dschuff accepted D53842: [WebAssembly] Parsing missing directives to produce valid .o.

I like the idea of trying to make the assembler less stateful if possible, but that can be another CL

Fri, Nov 2, 10:38 AM
dschuff updated subscribers of D53842: [WebAssembly] Parsing missing directives to produce valid .o.
Fri, Nov 2, 10:38 AM

Thu, Nov 1

dschuff accepted D54012: [WebAssembly] Added a .globaltype directive to .s output..
Thu, Nov 1, 5:01 PM
dschuff accepted D53819: [WebAssembly] Fix bugs in rethrow depth counting and InstPrinter.
Thu, Nov 1, 3:55 PM
dschuff added a comment to D53819: [WebAssembly] Fix bugs in rethrow depth counting and InstPrinter.

By "Multiple catches for a try" you mean catches with different tags?

Thu, Nov 1, 3:54 PM
dschuff accepted D53396: [WebAssembly] Fixup main signature by default.

At some point I could imagine a frontend possibly wanting to opt out of this pass entirely, but we can always add that option in the future.

Thu, Nov 1, 12:30 PM
dschuff added inline comments to D53842: [WebAssembly] Parsing missing directives to produce valid .o.
Thu, Nov 1, 10:10 AM

Mon, Oct 29

dschuff added inline comments to D53842: [WebAssembly] Parsing missing directives to produce valid .o.
Mon, Oct 29, 4:25 PM
dschuff added inline comments to D53842: [WebAssembly] Parsing missing directives to produce valid .o.
Mon, Oct 29, 4:07 PM

Thu, Oct 25

dschuff accepted D53722: [WebAssembly] Lower to target-independent saturating add.
Thu, Oct 25, 11:48 AM
dschuff accepted D53721: [WebAssembly] Use target-independent saturating add.
Thu, Oct 25, 11:48 AM

Wed, Oct 24

dschuff added a comment to D53620: [WebAssembly] Error out when block/loop markers mismatch.

I think assertions here are OK as long as the plan of record is is to put error handling into the parsers. If we have assertions, we can't have a test case (until we can test the parser errors) because it would always fail on release builds without asserts.

Wed, Oct 24, 4:10 PM
dschuff accepted D53619: [WebAssembly] Fix immediate of rethrow when throwing to caller.
Wed, Oct 24, 4:08 PM
dschuff accepted D53634: [WebAssembly] Support EH instructions in InstPrinter.
Wed, Oct 24, 9:38 AM
dschuff added a comment to D53620: [WebAssembly] Error out when block/loop markers mismatch.

I think catching block mismatch errors at parse time makes sense; although the third way that MCInst can be generated (aside from the compiler and asmparser) is the object file parser. So those checks would have to go both in the asm parser and object file parser. But if that means that we can hook into some existing error handling mechanism instead of using report_fatal_error, then it's probably worth it.
I agree that we can't use an assert string in a CHECK. The test wouldn't pass in a release non-asserts build (our release binaries have assertions, but it's not the default, and the official release binaries don't).

Wed, Oct 24, 8:51 AM

Tue, Oct 23

dschuff added a comment to D53620: [WebAssembly] Error out when block/loop markers mismatch.

This kind of code should never be produced by the wasm backend, right? In which case this could be an assert/unreachable rather than a fatal error. But I guess this code also prints insts that are parsed from an obj or asm file, right? In that case the input could just be bogus and we shouldn't assert.
So I'm not sure if it's possible here to tell which one to ideally use.
But also:

  1. can this test be an llvm-mc test (which has assembly input and prints assembly)? I think the answer is "yes" (at least eventually) but I'm not sure if the asm parser is far enough along yet for that.
  2. I wonder if there's some kind of infrastructure in MC for printing errors (e.g. for malformed asm) other than just the big hammer of report_fatal_error? If so it probably makes sense to use that (even if we can't tell the difference between bogus code from the compiler and bogus input from an asm user).
Tue, Oct 23, 5:32 PM

Oct 19 2018

dschuff added inline comments to D53307: [WebAssembly][NFC] Remove WebAssemblyStackifier TableGen backend.
Oct 19 2018, 10:44 AM

Oct 11 2018

dschuff accepted D52748: [WebAssembly] LSDA info generation.
Oct 11 2018, 1:23 PM

Oct 9 2018

dschuff closed D52580: Refactor WasmSignature and use it for MCSymbolWasm.

This was landed in rL343733. not sure why it didn't close already.

Oct 9 2018, 4:11 PM
dschuff added a comment to D52748: [WebAssembly] LSDA info generation.

Is that information what's used/needed to allow the linker to create a separate wasm segment per global?

Oct 9 2018, 2:33 PM
dschuff accepted D52899: [TTI] Check that lowered type is floating point before calling isFabsFree.

Test looks much nicer now, LGTM

Oct 9 2018, 11:05 AM

Oct 4 2018

dschuff added a comment to D52899: [TTI] Check that lowered type is floating point before calling isFabsFree.

Right but the point is that we don't currently have a way to ensure that the code is doing its job; if the SLP vectorizer stops doing its thing and calling the code that was asserting, then this test won't be testing anything.

Oct 4 2018, 5:38 PM
dschuff added a comment to D52856: [WebAssembly] __builtin_wasm_replace_lane_* builtins.

W is int64_t (which is long long for wasm32 and would probably be long for wasm64 since that would probably LP64 (like Linux) rather than LLP64 (Like Win64). So if we want it to be the same for both wasm32 and wasm64, I guess we want LL.

Oct 4 2018, 3:13 PM
dschuff accepted D52902: [WebAssembly] Don't modify preds/succs iterators while erasing from them.

Otherwise LGTM, and I verified that it fixes the expensive checks failure.

Oct 4 2018, 1:44 PM
dschuff added inline comments to D52902: [WebAssembly] Don't modify preds/succs iterators while erasing from them.
Oct 4 2018, 1:42 PM
dschuff added a comment to rL343746: [WebAssembly] Add WebAssembly to LLVM_ALL_TARGETS.

Yes, I can reproduce. I'll take a look.

Oct 4 2018, 11:52 AM

Oct 3 2018

dschuff committed rL343746: [WebAssembly] Add WebAssembly to LLVM_ALL_TARGETS.
[WebAssembly] Add WebAssembly to LLVM_ALL_TARGETS
Oct 3 2018, 4:58 PM
dschuff closed D52850: [WebAssembly] Add WebAssembly to LLVM_ALL_TARGETS.
Oct 3 2018, 4:58 PM
dschuff created D52850: [WebAssembly] Add WebAssembly to LLVM_ALL_TARGETS.
Oct 3 2018, 4:03 PM
dschuff committed rLLD343734: [WebAssembly] Refactor use of signatures.
[WebAssembly] Refactor use of signatures
Oct 3 2018, 3:28 PM
dschuff committed rL343734: [WebAssembly] Refactor use of signatures.
[WebAssembly] Refactor use of signatures
Oct 3 2018, 3:28 PM
dschuff closed D52622: [WebAssembly] Refactor use of signatures.
Oct 3 2018, 3:27 PM
dschuff committed rL343733: [WebAssembly] Refactor WasmSignature and use it for MCSymbolWasm.
[WebAssembly] Refactor WasmSignature and use it for MCSymbolWasm
Oct 3 2018, 3:24 PM
dschuff added a comment to D52580: Refactor WasmSignature and use it for MCSymbolWasm.

@sbc100 or @sunfish, any more comments?

Oct 3 2018, 1:40 PM
dschuff accepted D52680: Make meanings of variables clearer in action table generation (NFC).
Oct 3 2018, 1:06 PM
dschuff added a comment to D52680: Make meanings of variables clearer in action table generation (NFC).

I think it could be clearer than it is. The problem is that there are 2 overlapping naming conventions in use simultaneously:

  • SizeFoo referring to the size of a foo object or objects, (SizeAction, SizeActions)
  • BarAction referring to the index of a particular action (FirstAction, PrevAction).

Both of those are unsigned but mean very different things. So it's good that there's a convention but SizeAction fits into both and is ambiguous.
I think renaming SizeAction to SizeActionEntry would fix that. SizeActions is probably ok. I think a brief comment explaining the usage is fine but putting it inline with the declaration minimizes risk of it getting outdated.

Oct 3 2018, 9:46 AM

Oct 2 2018

dschuff added inline comments to D52805: [WebAssembly] Bitselect intrinsic and instruction.
Oct 2 2018, 6:00 PM
dschuff added inline comments to D52805: [WebAssembly] Bitselect intrinsic and instruction.
Oct 2 2018, 5:58 PM
dschuff added inline comments to D52805: [WebAssembly] Bitselect intrinsic and instruction.
Oct 2 2018, 5:46 PM
dschuff added inline comments to D52748: [WebAssembly] LSDA info generation.
Oct 2 2018, 3:15 PM
dschuff added inline comments to D52748: [WebAssembly] LSDA info generation.
Oct 2 2018, 2:58 PM

Sep 28 2018

dschuff updated the diff for D52580: Refactor WasmSignature and use it for MCSymbolWasm.
  • clang-format
Sep 28 2018, 7:21 PM
dschuff added a comment to D52580: Refactor WasmSignature and use it for MCSymbolWasm.

PTAL

Sep 28 2018, 6:06 PM
dschuff updated the diff for D52580: Refactor WasmSignature and use it for MCSymbolWasm.
  • Merge branch 'master' into signatures
  • add assert
  • Don't compute signature in EmitEndOfAsmFile if one is already there
  • Handle SRet in ComputeSignatureVTs
  • Fix -Wcovered-switch-default
  • Use ComputeSignatureVTs in more places
Sep 28 2018, 6:04 PM

Sep 27 2018

dschuff updated the diff for D52622: [WebAssembly] Refactor use of signatures.
  • Comments
Sep 27 2018, 4:49 PM
dschuff added a comment to D52442: [WebAssembly] Fixed AsmParser not allowing instructions with / and :.

I think it makes the most sense to try to remove colons from instruction names in the spec. Only a few shipped instructions have them. Slashes is probably harder, there are a lot more of those and they are all from the original MVP and not from nontrappingFP. So we can probably just remove colon support from this CL and land it.

Sep 27 2018, 4:30 PM
dschuff added a comment to D52442: [WebAssembly] Fixed AsmParser not allowing instructions with / and :.
Sep 27 2018, 4:27 PM
dschuff added inline comments to D52580: Refactor WasmSignature and use it for MCSymbolWasm.
Sep 27 2018, 3:45 PM
dschuff committed rL343275: WebAssembly: Rename GetSignature to GetLibcallSignature [NFC].
WebAssembly: Rename GetSignature to GetLibcallSignature [NFC]
Sep 27 2018, 3:22 PM
dschuff updated the summary of D52622: [WebAssembly] Refactor use of signatures.
Sep 27 2018, 12:07 PM
dschuff created D52622: [WebAssembly] Refactor use of signatures.
Sep 27 2018, 12:07 PM
dschuff added reviewers for D52580: Refactor WasmSignature and use it for MCSymbolWasm: sbc100, sunfish.
Sep 27 2018, 12:06 PM
dschuff retitled D52580: Refactor WasmSignature and use it for MCSymbolWasm from [WIP] Refactor use of signatures and store them on the AsmPrinter to Refactor WasmSignature and use it for MCSymbolWasm.
Sep 27 2018, 12:06 PM
dschuff updated the diff for D52580: Refactor WasmSignature and use it for MCSymbolWasm.
  • Make argument order consistent
Sep 27 2018, 12:06 PM
dschuff updated the diff for D52580: Refactor WasmSignature and use it for MCSymbolWasm.
  • cleanup
  • Use WasmSignature directly in DenseMap
Sep 27 2018, 11:53 AM
dschuff added a comment to D52580: Refactor WasmSignature and use it for MCSymbolWasm.

Yeah sorry this still needs some cleanup before it's ready for review (also I need to post the lld side) . arc's --plan-changes flag claims to upload without requesting review (and it does) but unfortunately it doesn't suppress the herald rules :/

Sep 27 2018, 9:11 AM
dschuff added inline comments to D52450: [Intrinsic] Add llvm.minnan and llvm.maxnan instrinsic functions.
Sep 27 2018, 8:52 AM
dschuff accepted D52582: [WebAssembly] Fix memory leak on WasmEHFuncInfo.
Sep 27 2018, 8:45 AM

Sep 26 2018

dschuff created D52580: Refactor WasmSignature and use it for MCSymbolWasm.
Sep 26 2018, 5:18 PM
dschuff planned changes to D52580: Refactor WasmSignature and use it for MCSymbolWasm.
Sep 26 2018, 5:18 PM
dschuff accepted rL343154: [WebAssembly] Fix MRI.hasOneNonDBGUse assert in WebAssemblyRegStackify pass .

Thanks!

Sep 26 2018, 4:52 PM
dschuff added a comment to D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.

Not exactly sure what you mean; do you mean that hasOneUse should return true if there is only one non-debug use? That makes sense, maybe it should be hasOneNonDbgUse or something. But please either commit this fix and then follow up, or revert this patch and re-apply with hasOneUse fixed.

Sep 26 2018, 3:26 PM · debug-info

Sep 24 2018

dschuff added inline comments to D52442: [WebAssembly] Fixed AsmParser not allowing instructions with / and :.
Sep 24 2018, 5:00 PM
dschuff accepted D49034: [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass.

otherwise LGTM

Sep 24 2018, 3:27 PM · debug-info

Sep 21 2018

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.

Sep 21 2018, 8:54 AM

Sep 14 2018

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?

Sep 14 2018, 11:31 AM