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 (332 w, 21 h)

US-Pacific timezone.

Recent Activity

Thu, May 16

dschuff added a comment to D62040: [docs] Add new document on building distributions.

This is great! Might it be worth mentioning LLVM_INSTALL_TOOLCHAIN_ONLY somewhere?

Thu, May 16, 3:52 PM · Restricted Project
dschuff accepted D61971: [WebAssembly] Move code and data sectiion generation to finalizeContent. NFC..
Thu, May 16, 1:14 PM · Restricted Project
dschuff accepted D61991: [WebAssembly] Don't generate empty type section..
Thu, May 16, 1:12 PM · Restricted Project

Tue, Apr 30

dschuff accepted D61351: [WebAssembly] Update expectations for gcc torture tests.
Tue, Apr 30, 4:04 PM · Restricted Project
dschuff accepted D61287: [WebAssembly] Support f16 libcalls.
Tue, Apr 30, 10:39 AM · Restricted Project

Wed, Apr 24

dschuff added a comment to D60986: [WebAssembly] Bail out of fastisel earlier when computing PIC addresses.

LGTM

Wed, Apr 24, 11:22 AM · Restricted Project
dschuff added inline comments to D60966: [WebAssembly] Emit br_table for most switch instructions.
Wed, Apr 24, 10:33 AM · Restricted Project

Apr 12 2019

dschuff accepted D60623: [WebAssembly] Add DataCount section to object files.

I assume the linker doesn't need to do anything with this, it can just regenerate it after linking?

Apr 12 2019, 1:58 PM · Restricted Project

Apr 11 2019

dschuff accepted D60594: [WebAssembly] Add mutable-globals to bleeding-edge CPU.
Apr 11 2019, 6:03 PM · Restricted Project

Apr 4 2019

dschuff accepted D59907: [WebAssembly] Add new explicit relocation types for PIC relocations.

I guess the lld code here is an even better answer to my question on the tool-conventions review: the linker behavior is exactly the same.

Apr 4 2019, 9:42 AM · Restricted Project

Apr 2 2019

dschuff accepted D60014: [WebAssembly] Remove unneeded target operand flags.

I think these are leftovers from when we were using ELF.

Apr 2 2019, 4:50 PM · Restricted Project

Mar 29 2019

dschuff accepted D60004: [WebAssembly] Handle END_LOOP in unreachable BB in CFGStackify.
Mar 29 2019, 12:30 PM · Restricted Project

Mar 28 2019

dschuff committed rG0c9ea1053058: Revert "[WebAssembly] Improve invalid relocation error message" (authored by dschuff).
Revert "[WebAssembly] Improve invalid relocation error message"
Mar 28 2019, 5:04 PM
dschuff added a reverting change for rG0805ec5f7b5c: [WebAssembly] Improve invalid relocation error message: rG0c9ea1053058: Revert "[WebAssembly] Improve invalid relocation error message".
Mar 28 2019, 5:04 PM
dschuff committed rGac727e86473b: Revert "[WebAssembly] Improve invalid relocation error message" (authored by dschuff).
Revert "[WebAssembly] Improve invalid relocation error message"
Mar 28 2019, 5:04 PM
dschuff added a reverting change for rG0805ec5f7b5c: [WebAssembly] Improve invalid relocation error message: rGac727e86473b: Revert "[WebAssembly] Improve invalid relocation error message".
Mar 28 2019, 5:04 PM
dschuff added a reverting change for rGa9958fc30d0c: [WebAssembly] Fix typo from rL357143: rGac727e86473b: Revert "[WebAssembly] Improve invalid relocation error message".
Mar 28 2019, 5:04 PM
dschuff committed rLLD357225: Revert "[WebAssembly] Improve invalid relocation error message".
Revert "[WebAssembly] Improve invalid relocation error message"
Mar 28 2019, 5:03 PM
dschuff committed rLLD357224: Revert "[WebAssembly] Improve invalid relocation error message".
Revert "[WebAssembly] Improve invalid relocation error message"
Mar 28 2019, 5:03 PM
dschuff committed rL357225: Revert "[WebAssembly] Improve invalid relocation error message".
Revert "[WebAssembly] Improve invalid relocation error message"
Mar 28 2019, 5:03 PM
dschuff committed rL357224: Revert "[WebAssembly] Improve invalid relocation error message".
Revert "[WebAssembly] Improve invalid relocation error message"
Mar 28 2019, 5:03 PM

Mar 27 2019

dschuff accepted D59908: [WebAssembly] Rename wasm fixup kinds.
Mar 27 2019, 4:24 PM · Restricted Project
dschuff added a comment to D59743: [WebAssembly] Don't use default GetLinkerPath.

Reverted in rG039be787914610c28cba45c4557454e0a96939ab. Caused a strange error with the waterfall sysroot's build of libcxx: https://logs.chromium.org/logs/wasm/buildbucket/cr-buildbucket.appspot.com/8917800786005174656/+/steps/libcxx/0/stdout

Mar 27 2019, 3:23 PM · Restricted Project
dschuff committed rG039be7879146: Revert "[WebAssembly] Don't use default GetLinkerPath" (authored by dschuff).
Revert "[WebAssembly] Don't use default GetLinkerPath"
Mar 27 2019, 3:23 PM
dschuff added a reverting change for rG4dcf3acce6d7: [WebAssembly] Don't use default GetLinkerPath: rG039be7879146: Revert "[WebAssembly] Don't use default GetLinkerPath".
Mar 27 2019, 3:23 PM
dschuff committed rC357127: Revert "[WebAssembly] Don't use default GetLinkerPath".
Revert "[WebAssembly] Don't use default GetLinkerPath"
Mar 27 2019, 3:22 PM
dschuff committed rL357127: Revert "[WebAssembly] Don't use default GetLinkerPath".
Revert "[WebAssembly] Don't use default GetLinkerPath"
Mar 27 2019, 3:22 PM

Mar 26 2019

dschuff accepted D59855: [WebAssembly] Add some whitespace for clarity.

Macro shipit:

Mar 26 2019, 5:37 PM · Restricted Project
dschuff accepted D48345: [WebAssembly] Fix unwind destination mismatches in CFG stackify.
Mar 26 2019, 12:38 PM · Restricted Project
dschuff accepted D59740: [WebAssembly] Don't analyze branches after CFGStackify.
Mar 26 2019, 10:06 AM · Restricted Project

Mar 25 2019

dschuff added inline comments to D59740: [WebAssembly] Don't analyze branches after CFGStackify.
Mar 25 2019, 5:22 PM · Restricted Project
dschuff accepted D54647: [WebAssembly] Initial implementation of PIC code generation.

still LGTM. In a followup CL it should be straightforward to add back fast-isel and you might be able to re-use the same checks in load-store-pic.ll. (but you wouldn't need to add fast-isel+PIC to address-offsets.ll because that's testing an optimization that fast-isel doesn't do.)

Mar 25 2019, 5:14 PM · Restricted Project
dschuff accepted D59652: [WebAssembly] Run ExplicitLocals pass after CFGStackify.
Mar 25 2019, 3:37 PM · Restricted Project
dschuff added inline comments to D59740: [WebAssembly] Don't analyze branches after CFGStackify.
Mar 25 2019, 3:36 PM · Restricted Project
dschuff added inline comments to D59740: [WebAssembly] Don't analyze branches after CFGStackify.
Mar 25 2019, 3:30 PM · Restricted Project
dschuff accepted D59747: [WebAssembly] Add CFGStacikfied field to WebAssemblyFunctionInfo.
Mar 25 2019, 1:50 PM · Restricted Project
dschuff accepted D59737: [WebAssembly] Support WebAssemblyFunctionInfo serialization.
Mar 25 2019, 1:49 PM · Restricted Project
dschuff accepted D59751: [WebAssembly] Fix a bug when mixing TRY/LOOP markers.
Mar 25 2019, 1:46 PM · Restricted Project
dschuff accepted D59739: [WebAssembly] Fix bugs in BLOCK/TRY placement.

otherwise LGTM

Mar 25 2019, 1:41 PM · Restricted Project
dschuff accepted D59743: [WebAssembly] Don't use default GetLinkerPath.
Mar 25 2019, 10:13 AM · Restricted Project

Mar 19 2019

dschuff added inline comments to D48345: [WebAssembly] Fix unwind destination mismatches in CFG stackify.
Mar 19 2019, 3:22 PM · Restricted Project

Mar 18 2019

dschuff accepted D59519: [WebAssembly] Lower SIMD nnan setcc nodes.

to make the change even clearer, you could just say in the commit message that it just adds the missing non-equality opcodes.

Mar 18 2019, 5:36 PM · Restricted Project
dschuff accepted D54661: [WebAssembly] Don't override default implementation of isOffsetFoldingLegal. NFC..
Mar 18 2019, 2:18 PM · Restricted Project
dschuff accepted D59447: [WebAssembly] Add immarg attribute to intrinsics.
Mar 18 2019, 1:37 PM · Restricted Project
dschuff accepted D59445: Restore comment regarding why Reloc::PIC_ can't be PIC.
Mar 18 2019, 12:58 PM · Restricted Project
dschuff accepted D59448: [WebAssembly] Change wasm.throw's first argument to an immediate.

LGTM; I wonder if it makes sense to have predefined macro for the C++ tag (or perhaps just a regular macro for use in libcxxabi?)

Mar 18 2019, 12:55 PM · Restricted Project

Mar 15 2019

dschuff added a comment to D54647: [WebAssembly] Initial implementation of PIC code generation.

wow that's a very large meme.

Mar 15 2019, 5:03 PM · Restricted Project
dschuff accepted D54647: [WebAssembly] Initial implementation of PIC code generation.
Mar 15 2019, 5:03 PM · Restricted Project

Mar 14 2019

dschuff added a comment to D59395: [WebAssembly] Remove unused LoadPatExternalSym patterns.

Macro shipit:

Mar 14 2019, 5:21 PM · Restricted Project
dschuff accepted D59395: [WebAssembly] Remove unused LoadPatExternalSym patterns.

LGTM assuming that comment is right. Assuming it's correct, I don't really understand what exactly ExternalSymbol actually means though.

Mar 14 2019, 4:39 PM · Restricted Project
dschuff accepted D59353: [WebAssembly] Use rethrow intrinsic in the rethrow block.
Mar 14 2019, 2:30 PM · Restricted Project
dschuff accepted D59352: [WebAssembly] Make rethrow take an except_ref type argument.

otherwise LGTM

Mar 14 2019, 2:30 PM · Restricted Project
dschuff accepted D59342: [WebAssembly] Method order change in LateEHPrepare (NFC).
Mar 14 2019, 11:10 AM · Restricted Project

Mar 12 2019

dschuff accepted D58914: [WebAssembly] Place 'try' and 'catch' correctly wrt EH_LABELs.

So by "correctly" you mean that the TRY goes before the EH_LABEL rather than between the label and the call, and the CATCH goes after the label rather than at the top of the BB?

Mar 12 2019, 11:00 AM · Restricted Project

Mar 7 2019

dschuff added inline comments to D59007: [WebAssembly] Use named operands to identify loads and stores.
Mar 7 2019, 11:08 AM · Restricted Project

Mar 5 2019

dschuff accepted D58953: [WebAssembly] Disable MachineBlockPlacement pass.

LGTM with the comment suggestion.

Mar 5 2019, 10:27 AM · Restricted Project

Feb 26 2019

dschuff added a comment to D58486: [WebAssembly] Delete ThrowUnwindDest map from WasmEHFuncInfo.

still LGTM

Feb 26 2019, 2:09 PM · Restricted Project
dschuff accepted D58605: [WebAssembly] Fix ScopeTops info in CFGStackify for EH pads.
Feb 26 2019, 2:06 PM · Restricted Project
dschuff accepted D58591: [WebAssembly] Remove unnecessary instructions after TRY marker placement.
Feb 26 2019, 1:59 PM · Restricted Project

Feb 25 2019

dschuff added inline comments to D58591: [WebAssembly] Remove unnecessary instructions after TRY marker placement.
Feb 25 2019, 1:33 PM · Restricted Project
dschuff accepted D58562: [WebAssembly] Improve readability of EH tests.

LGTM, this is a nice improvement.

Feb 25 2019, 1:15 PM · Restricted Project
dschuff accepted D58519: [WebAssembly] Fix a bug deleting instruction in a ranged for loop.
Feb 25 2019, 1:08 PM · Restricted Project

Feb 22 2019

dschuff accepted D58472: [WebAssembly] Remove unneeded MCSymbolRefExpr variants.

Makes sense. I think the thing that has changed compared to when we started is that symbol types like function, global, and event are more first-class in the wasm object format. Anyway, this change seems fine. I assume the asm parser already isn't using these annotations and we still round-trip?

Feb 22 2019, 2:06 PM · Restricted Project
dschuff added a comment to D58486: [WebAssembly] Delete ThrowUnwindDest map from WasmEHFuncInfo.

Makes sense.
Is EHPadUnwindMap analogous to any of the similarly-named data structures for WinEH? If so, that would seem to make it even less likely to accidentally break, since any change that breaks it would also break WinEH.

Feb 22 2019, 1:57 PM · Restricted Project
dschuff accepted D58486: [WebAssembly] Delete ThrowUnwindDest map from WasmEHFuncInfo.

You mention that this is a bugfix. what's the bug that is fixed? An optimization not keeping the map up to date?

Feb 22 2019, 1:34 PM · Restricted Project
dschuff accepted D58417: [WebAssembly] MC: Handle aliases of aliases.
Feb 22 2019, 11:44 AM · Restricted Project
dschuff added a comment to D58472: [WebAssembly] Remove unneeded MCSymbolRefExpr variants.

IIRC this code goes back to when we were piggybacking on ELF, and is more-or-less there to match how those variants are used on ELF. I don't see any asm parser changes in this CL, but I could imagine that they would exist so that the assembler could know what kind of reloc to use even without any context or special knowledge of symbol types; does this change affect how asm is parsed? Maybe we've already added enough extra intelligence to the assembler that we don't need them.

Feb 22 2019, 11:37 AM · Restricted Project

Feb 21 2019

dschuff accepted D58319: [WebAssembly] Remove getBottom function from CFGStackify (NFC).
Feb 21 2019, 5:37 PM · Restricted Project
dschuff added a comment to D58488: [WebAssembly] Default to a reasonable signature in WebAssemblyAddMissingPrototypes.

LGTM

Feb 21 2019, 3:39 PM · Restricted Project

Feb 15 2019

dschuff accepted D58304: [WebAssembly] Warn but don't error on conflicting uses of prototype-less functions.

By "pick one at random" you mean we are rewriting one of the calls to drop or add parameters, right? And the one we pick is just the first one we happen to encounter?

Feb 15 2019, 2:57 PM · Restricted Project

Feb 12 2019

dschuff added a comment to D57938: [WebAssembly] Update MC for bulk memory.

Without the context of MC here there's no indication what kind of flags the .init_flags directive refers to. Maybe call it init_segment_flags?

Feb 12 2019, 4:44 PM · Restricted Project

Feb 7 2019

dschuff added a comment to D42867: [WebAssembly] Add __data_end linker-synthetic symbol.

@quinripa IIUC this patch was committed a year ago, so these symbols should be working?

Feb 7 2019, 3:22 PM · Restricted Project
dschuff accepted D57800: [WebAssembly] LTO: Set POSIX thread model when linking with -shared-memoey.

Yeah, based on our conversations (e.g. in D57874) we should go ahead with this.

Feb 7 2019, 3:18 PM · Restricted Project
dschuff added a comment to D57874: [WebAssembly] Make thread-related options consistent.

Oh I guess another option would just be to pin all 3 flags together here, but since -pthread sets a preprocessor define and may also affect linker behavior, I think it's fine to allow atomic codegen without setting -pthread.

Feb 7 2019, 10:46 AM · Restricted Project, Restricted Project
dschuff added a comment to D57874: [WebAssembly] Make thread-related options consistent.

So this CL has the effect that setting -pthreads will also set -matomics.
Currently as you mentioned we have the problem that we can't make our current logic of "do we lower away the atomics" be controlled by the target features because it's done at pass config time and not codegen time (where there's no access to the per-function subtarget).
Also IIUC on ARM, it's -mthread-model that controls generation of atomic instructions, so it makes sense that -mthread-model does the same thing for Wasm. But it's also true that for wasm we use -m<feature> to enable codegen for a particular wasm feature, so it would be good to make -matomics do the same for consistency.
So, can we just pin those 2 flags together here? i.e. setting one will just cause the other to be set?
(I guess we'd also need consistency check so that if someone does something like -mthread-model=posix -mno-atomics we either throw an error or make it so that one of those always overrides the other).

Feb 7 2019, 10:44 AM · Restricted Project, Restricted Project

Feb 6 2019

dschuff added a comment to D57861: [WebAssembly] Expand symbols shown by llvm-objdump --symbols.

Does this affect llvm-objdump or just llvm-readobj, or both (I don't see any tests here with llvm-objdump but the CL description mentions it)

Feb 6 2019, 5:17 PM · Restricted Project
dschuff accepted D57864: [WebAssembly] Add symbol flag to the binary format corresponding to llvm.used.
Feb 6 2019, 5:14 PM · Restricted Project
dschuff added a comment to D57800: [WebAssembly] LTO: Set POSIX thread model when linking with -shared-memoey.

I think we should change the logic in the backend to use the atomics target feature rather than the thread model to determine whether to run the LowerAtomics pass. Then this won't be necessary since the functions will have the appropriate attribute.

Feb 6 2019, 11:07 AM · Restricted Project

Feb 4 2019

dschuff added inline comments to D57713: [WebAssembly] Make disassembler always emit most canonical name..
Feb 4 2019, 2:30 PM · Restricted Project
dschuff accepted D57695: [llvm-readobj] Report more WebAssembly symbol info.
Feb 4 2019, 2:21 PM · Restricted Project

Feb 1 2019

dschuff accepted D57610: [WebAssembly] Remove redundant namespaces qualifiers. NFC..
Feb 1 2019, 1:28 PM · Restricted Project
dschuff accepted D57546: [WebAssembly] Make segment/size/type directives optional in asm.

otherwise LGTM too

Feb 1 2019, 11:13 AM · Restricted Project
dschuff added inline comments to D57546: [WebAssembly] Make segment/size/type directives optional in asm.
Feb 1 2019, 11:13 AM · Restricted Project
dschuff added inline comments to D57546: [WebAssembly] Make segment/size/type directives optional in asm.
Feb 1 2019, 11:10 AM · Restricted Project
dschuff added a comment to D57495: [WebAssembly] Add bulk memory target feature.

It's always been possible because clang and LLVM have always just been in different trunks in the same SVN repo. AFAIK it's never been disallowed but people rarely do it.

Feb 1 2019, 10:24 AM · Restricted Project

Jan 31 2019

dschuff added inline comments to D57498: [WebAssembly] memory.copy.
Jan 31 2019, 1:20 PM · Restricted Project
dschuff accepted D57538: [WebAssembly] MC: Fix type of function aliases.

LGTM. Can you put a little more detail in the commit message (e.g. something like what you wrote in the comment) to make it easier to see in a log (without having to look at the code or the PR)?

Jan 31 2019, 1:14 PM · Restricted Project

Jan 30 2019

dschuff added a comment to D57480: [WebAssembly] Remove TODO on wasm.extract.exception intrinsic (NFC).

Just noticed, but the discussion should maybe have gone into a comment on Phab rather than the commit message itself...

Jan 30 2019, 4:02 PM
dschuff accepted D57480: [WebAssembly] Remove TODO on wasm.extract.exception intrinsic (NFC).

yeah, seems fine. we can always change our mind in the future even in the absence of a TODO :)

Jan 30 2019, 3:35 PM
dschuff accepted D57477: [WebAssembly] MC: Use WritePatchableLEB helper function. NFC..
Jan 30 2019, 2:42 PM
dschuff accepted D57421: [WebAssembly] Restore stack pointer right after catch instruction.
Jan 30 2019, 1:40 PM

Jan 29 2019

dschuff accepted D57134: [WebAssembly] Exception handling: Switch to the new proposal.
Jan 29 2019, 4:52 PM

Jan 28 2019

dschuff added inline comments to D57134: [WebAssembly] Exception handling: Switch to the new proposal.
Jan 28 2019, 5:17 PM

Jan 25 2019

dschuff added a comment to D57134: [WebAssembly] Exception handling: Switch to the new proposal.

overall it looks good; it's nice that this version is simpler.

Jan 25 2019, 3:15 PM

Jan 24 2019

dschuff added a comment to D57134: [WebAssembly] Exception handling: Switch to the new proposal.

haven't quite gotten through it but here's what I have so far. Looking pretty good overall though.

Jan 24 2019, 5:37 PM
dschuff accepted D57155: [WebAssembly] Add a __wasi__ target macro.

LGTM; don't forget to include all the context in the future

Jan 24 2019, 11:31 AM
dschuff accepted D57160: [WebAssembly] Add an import_module function attribute.
Jan 24 2019, 11:30 AM
dschuff accepted D57153: [WebAssembly] Factor commonality between wasm32 and wasm64 in test/Preprocessor/init.c.
Jan 24 2019, 11:28 AM
dschuff accepted D57154: [WebAssembly] Support __float128.
Jan 24 2019, 11:27 AM

Jan 17 2019

dschuff accepted D56684: [WebAssembly] Fixed objdump not parsing function headers..
Jan 17 2019, 9:32 AM