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

US-Pacific timezone.

Recent Activity

Yesterday

dschuff committed rGff171acf8420: [WebAssembly] Track frame registers through VReg and local allocation (authored by dschuff).
[WebAssembly] Track frame registers through VReg and local allocation
Fri, Jan 17, 5:33 PM
dschuff abandoned D72969: [WebAssembly] Track frame registers through VReg and local allocation.

This was (re)landed as rGff171acf8

Fri, Jan 17, 5:33 PM · Restricted Project
dschuff updated subscribers of D72969: [WebAssembly] Track frame registers through VReg and local allocation.

Oops, this is just the diff from D71681 (which was committed as rG3a05c3969c18 and reverted), but not the whole patch.
I'll reland the whole thing together, but if @yurydelendik or @sunfish have comments I'm happy to hear them.

Fri, Jan 17, 5:14 PM · Restricted Project
dschuff created D72969: [WebAssembly] Track frame registers through VReg and local allocation.
Fri, Jan 17, 5:05 PM · Restricted Project

Thu, Jan 16

dschuff accepted D72881: [lld][WebAssembly] Use a more meaningful name for stub functions.
Thu, Jan 16, 2:53 PM · Restricted Project
dschuff added a reverting change for rG3a05c3969c18: [WebAssembly] Track frame registers through VReg and local allocation: rG80906d9d1604: Revert "[WebAssembly] Track frame registers through VReg and local allocation".
Thu, Jan 16, 2:44 PM
dschuff committed rG80906d9d1604: Revert "[WebAssembly] Track frame registers through VReg and local allocation" (authored by dschuff).
Revert "[WebAssembly] Track frame registers through VReg and local allocation"
Thu, Jan 16, 2:44 PM
dschuff committed rG3a05c3969c18: [WebAssembly] Track frame registers through VReg and local allocation (authored by dschuff).
[WebAssembly] Track frame registers through VReg and local allocation
Thu, Jan 16, 1:56 PM
dschuff closed D71681: [WebAssembly] Track frame registers through VReg and local allocation.
Thu, Jan 16, 1:56 PM · Restricted Project
dschuff committed rG9b3254dbf9f6: [LLDB] Add SymbolVendorWasm plugin for WebAssembly debugging (authored by paolosev).
[LLDB] Add SymbolVendorWasm plugin for WebAssembly debugging
Thu, Jan 16, 9:44 AM
dschuff committed rGd34e4152e3e0: [LLDB] Convert Plugins/ObjectFile/wasm/ObjectFileWasm.h to unix line endings (authored by dschuff).
[LLDB] Convert Plugins/ObjectFile/wasm/ObjectFileWasm.h to unix line endings
Thu, Jan 16, 9:44 AM
dschuff closed D72650: [LLDB] Add SymbolVendorWasm plugin for WebAssembly debugging.
Thu, Jan 16, 9:44 AM · Restricted Project

Wed, Jan 15

dschuff committed rG4bafceced6a7: [LLDB] Add ObjectFileWasm plugin for WebAssembly debugging (authored by paolosev).
[LLDB] Add ObjectFileWasm plugin for WebAssembly debugging
Wed, Jan 15, 4:32 PM
dschuff closed D71575: [LLDB] Add ObjectFileWasm plugin for WebAssembly debugging.
Wed, Jan 15, 4:32 PM · Restricted Project
dschuff updated subscribers of D71681: [WebAssembly] Track frame registers through VReg and local allocation.
Wed, Jan 15, 4:06 PM · Restricted Project
dschuff updated the diff for D71681: [WebAssembly] Track frame registers through VReg and local allocation.
  • Cleanup scope, update lld debuginfo test
Wed, Jan 15, 3:20 PM · Restricted Project
dschuff added a comment to D71681: [WebAssembly] Track frame registers through VReg and local allocation.

Thanks, I'll commit this soon.

Wed, Jan 15, 2:56 PM · Restricted Project
dschuff added a comment to D71681: [WebAssembly] Track frame registers through VReg and local allocation.

Ping.

Wed, Jan 15, 10:22 AM · Restricted Project

Mon, Jan 13

dschuff updated the diff for D71681: [WebAssembly] Track frame registers through VReg and local allocation.
  • Fix NVPTX
Mon, Jan 13, 5:27 PM · Restricted Project
dschuff updated the diff for D71681: [WebAssembly] Track frame registers through VReg and local allocation.

Rebase

  • suppress build warning
Mon, Jan 13, 5:18 PM · Restricted Project

Thu, Jan 9

dschuff updated subscribers of D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
Thu, Jan 9, 1:22 PM · Restricted Project
dschuff updated subscribers of D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Thu, Jan 9, 1:22 PM · Restricted Project

Wed, Jan 8

dschuff updated subscribers of D71681: [WebAssembly] Track frame registers through VReg and local allocation.

also cc @paolosev and @philip.pfaffe

Wed, Jan 8, 3:10 PM · Restricted Project
dschuff added a comment to D71681: [WebAssembly] Track frame registers through VReg and local allocation.

This is ready for review now, please take a look.

Wed, Jan 8, 3:10 PM · Restricted Project
dschuff updated the diff for D71681: [WebAssembly] Track frame registers through VReg and local allocation.
  • add doxygen comment
Wed, Jan 8, 3:00 PM · Restricted Project
dschuff retitled D71681: [WebAssembly] Track frame registers through VReg and local allocation from [WIP] [WebAssembly] Track frame registers through VReg and local allocation to [WebAssembly] Track frame registers through VReg and local allocation.
Wed, Jan 8, 3:00 PM · Restricted Project
dschuff updated the diff for D71681: [WebAssembly] Track frame registers through VReg and local allocation.
  • finish update multi-return
  • remove debug prints
  • clean up, add comments
  • clang-format
Wed, Jan 8, 2:23 PM · Restricted Project

Tue, Jan 7

dschuff updated subscribers of D71681: [WebAssembly] Track frame registers through VReg and local allocation.
Tue, Jan 7, 5:44 PM · Restricted Project
dschuff updated the diff for D71681: [WebAssembly] Track frame registers through VReg and local allocation.
  • update tests, add new test for dwarf local var
  • start update multi-return test
Tue, Jan 7, 5:41 PM · Restricted Project

Fri, Dec 20

dschuff updated the diff for D71681: [WebAssembly] Track frame registers through VReg and local allocation.
  • use getDwarfFrameBase on WebAssemblyFrameLowering
  • Don't optimize live intervale for frame reg. use global instead of local when not needsSP
  • Update NVPTX
Fri, Dec 20, 11:47 PM · Restricted Project
dschuff committed rGadf7a0a558a5: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly… (authored by yurydelendik).
[WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly…
Fri, Dec 20, 2:49 PM
dschuff closed D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.
Fri, Dec 20, 2:48 PM · Restricted Project, debug-info
dschuff accepted D71781: Fix name of InitLibcalls function in comment.
Fri, Dec 20, 2:18 PM · Restricted Project
dschuff added a comment to D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.

LGTM!

Fri, Dec 20, 10:51 AM · Restricted Project, debug-info
dschuff added a comment to D70685: [WebAssembly] Fix the order of destructors in the LowerGlobalDtors pass..

(also, the langref says that the order within a priority is unspecfied. is something depending on this ordering (I assume so, since you bothered to change it)?

Fri, Dec 20, 10:09 AM · Restricted Project
dschuff added a comment to D70685: [WebAssembly] Fix the order of destructors in the LowerGlobalDtors pass..

the commit description says "not ordered to group destructors with common associated objects" but it looks this patch is doing grouping by associated object. Is that intentional?
Also, maybe there should be a test which has destructors of different priorities associated with the same object?

Fri, Dec 20, 10:09 AM · Restricted Project

Thu, Dec 19

dschuff accepted D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.

After thinking a bit more, I'd like to rename DwarfExpression::addTargetIndexLocation to DwarfExpression::addWasmLocation because basically all of the methods on DarfExpression correspond to DW_OP_foo operands, so a method for adding DW_OP_wasm_location should probably just be called addWasmLocation. If we want to later have a utility function to extract some other functionality like converting a TargetIndex, we can always do that in the future when we have another caller.
With that suggestion, this change LGTM

Thu, Dec 19, 2:30 PM · Restricted Project, debug-info

Dec 18 2019

dschuff added a comment to D71681: [WebAssembly] Track frame registers through VReg and local allocation.

I think that this approach to tracking the frame register through VReg and local substitution will work fairly reliably for now, because the frame register is live through the whole function and is unlikely to be coalesced with other locals or stackified.
One thing I don't like about D69807 is that getFrameRegister is called in a variety of places during generation of various bits of the code as well as in DwarfCompileUnit, whereas getFrameBaseLocation only has this particular meaning and used here (while in the other places getFrameRegister is returning phsyical registers that are meaningless partway through the pipeline.

Dec 18 2019, 5:12 PM · Restricted Project
dschuff created D71681: [WebAssembly] Track frame registers through VReg and local allocation.
Dec 18 2019, 5:02 PM · Restricted Project
dschuff added a child revision for D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations: D71681: [WebAssembly] Track frame registers through VReg and local allocation.
Dec 18 2019, 5:02 PM · Restricted Project, debug-info
dschuff added inline comments to D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.
Dec 18 2019, 11:16 AM · Restricted Project, debug-info
dschuff added inline comments to D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.
Dec 18 2019, 11:07 AM · Restricted Project, debug-info

Dec 17 2019

dschuff added inline comments to D71632: [lld][WebAssembly] Fail if bitcode objects are pulled in after LTO.
Dec 17 2019, 3:39 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 17 2019, 3:38 PM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Split header generation into separate function
Dec 17 2019, 3:34 PM · Restricted Project

Dec 16 2019

dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • Merge branch 'objcopy-wasm' into objcopy-add-remove
  • Make Object own the OwnedContents instead of Section
Dec 16 2019, 5:40 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 16 2019, 5:40 PM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Simplify Section to a struct
Dec 16 2019, 5:40 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 16 2019, 5:40 PM · Restricted Project
dschuff accepted D71506: [WebAssembly] Convert MC tests to from bitcode to asm.
Dec 16 2019, 2:53 PM · Restricted Project
dschuff accepted D71493: [WebAssembly] Setting export_name implies no_dead_strip.
Dec 16 2019, 2:16 PM · Restricted Project, Restricted Project
dschuff accepted D71368: [ MC ] Match labels to existing fragments even when switching sections..
Dec 16 2019, 2:07 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 16 2019, 10:25 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Remove OwnedContents for now, and give Writer::SectionHeader its correct name
Dec 16 2019, 10:25 AM · Restricted Project

Dec 12 2019

dschuff accepted D71156: [WebAssembly] Don't crash when gnu-style pubnames are requested.
Dec 12 2019, 10:51 AM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 12 2019, 10:05 AM · Restricted Project
dschuff added a comment to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.

Thanks for all your input!
Who else needs to review this? Can you say explicitly, so we can keep this from becoming one of those reviews that hangs in limbo for a long time without any clear path forward?

Dec 12 2019, 9:56 AM · Restricted Project

Dec 11 2019

dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • review comments
Dec 11 2019, 2:19 PM · Restricted Project
dschuff added inline comments to D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
Dec 11 2019, 2:10 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 11 2019, 10:39 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Review comments 3
Dec 11 2019, 10:39 AM · Restricted Project

Dec 9 2019

dschuff added inline comments to D70520: [WebAssembly] Add new `export_name` clang attribute for controlling wasm export names.
Dec 9 2019, 5:36 PM · Restricted Project, Restricted Project
dschuff accepted D70520: [WebAssembly] Add new `export_name` clang attribute for controlling wasm export names.
Dec 9 2019, 5:07 PM · Restricted Project, Restricted Project

Dec 6 2019

dschuff accepted D70877: [WebAssebmly][MC] Support .import_name/.import_field asm directives.
Dec 6 2019, 3:02 PM · Restricted Project, Restricted Project

Dec 5 2019

dschuff added a comment to D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.

I believe this patch is now also ready, please take a look.

Dec 5 2019, 10:43 AM · Restricted Project
dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • fix newline
Dec 5 2019, 10:43 AM · Restricted Project
dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
  • Split tests
Dec 5 2019, 10:33 AM · Restricted Project
dschuff added a comment to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.

I do find it odd that there is a PATH fallback in the existing code in the first place. I agree that basically no compiler other than the "system" compiler should ever use it (and also even the concept of the "system" compiler really only makes much sense on systems like Linux and BSDs where compiling things for the local system is common). I guess the other option here would be to just require that wasm-opt be in the same directory as clang, which we can arrange in wasi-sdk or wherever.

Dec 5 2019, 9:24 AM · Restricted Project
dschuff added a comment to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.

I believe I've addressed all the feedback now.

Dec 5 2019, 8:46 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Split Reader/Writer into separate files
Dec 5 2019, 8:46 AM · Restricted Project

Dec 4 2019

dschuff added inline comments to D70877: [WebAssebmly][MC] Support .import_name/.import_field asm directives.
Dec 4 2019, 11:16 PM · Restricted Project, Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 4 2019, 2:00 PM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Review 2
Dec 4 2019, 2:00 PM · Restricted Project

Dec 3 2019

dschuff updated the diff for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.

fix dir name

Dec 3 2019, 5:05 PM · Restricted Project
dschuff added inline comments to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 3 2019, 11:01 AM · Restricted Project
dschuff updated the summary of D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
Dec 3 2019, 10:33 AM · Restricted Project
dschuff added a child revision for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy: D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support.
Dec 3 2019, 10:33 AM · Restricted Project
Herald added a reviewer for D70970: [llvm-objcopy][WebAssembly] Add dump/add/remove-section support: rupprecht.
Dec 3 2019, 10:24 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • rename Wasm directories to wasm
Dec 3 2019, 10:24 AM · Restricted Project
dschuff added a comment to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.

Do you mean wasm instead of Wasm?

Dec 3 2019, 10:14 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Remove add/remove/dump section support
Dec 3 2019, 9:56 AM · Restricted Project
dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Add test that removed section is gone
  • Address round 1 of review comments
Dec 3 2019, 9:37 AM · Restricted Project
dschuff added a comment to D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.

Thanks for the detailed review. I just uploaded a diff to address the comments (other than splitting the patch apart).

Dec 3 2019, 9:37 AM · Restricted Project

Dec 2 2019

dschuff updated the diff for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
  • Add test that removed section is gone
Dec 2 2019, 4:07 PM · Restricted Project
dschuff retitled D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy from [llvm-objcopy] Initial support for wasm in llvm-objcopy to [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy.
Dec 2 2019, 3:57 PM · Restricted Project
Herald added a reviewer for D70930: [llvm-objcopy][WebAssembly] Initial support for wasm in llvm-objcopy: rupprecht.
Dec 2 2019, 3:57 PM · Restricted Project
dschuff added a comment to D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.

Ping. The target-independent portion of this patch is very small now.

Dec 2 2019, 10:16 AM · Restricted Project, debug-info
dschuff accepted D70780: [WebAssembly] Find wasm-opt with GetProgramPath.
Dec 2 2019, 9:39 AM · Restricted Project

Nov 25 2019

dschuff accepted D70677: [WebAssembly] Change the llvm-lto dir to use the LLVM Version.
Nov 25 2019, 9:47 AM · Restricted Project

Nov 21 2019

dschuff added a comment to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.

Also if at some point we are able to remove a bunch of the driver logic from emcc and move it here, (e.g. running clang to link instead of lld directly) we'll need to watch out for this.

Nov 21 2019, 4:37 PM · Restricted Project
dschuff accepted D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.

WRT the LTO directory name, there's theoretically the danger that someone (e.g. emscripten) could be doing a rolling release of the compiler and get invalidated within a major revision. But in that case, 1) they should be rebuilding their libraries on each release anyway, and 2) last time I checked, policy was to make auto-upgrade of bitcode work within a revision. So it's probably not a problem.

Nov 21 2019, 4:28 PM · Restricted Project
dschuff updated subscribers of D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.

Ping. Any other opinions? Perhaps @dblaikie ?

Nov 21 2019, 8:19 AM · Restricted Project, debug-info

Nov 20 2019

dschuff added a comment to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.

LGTM on the approach, just one more question on the wasm-opt flags.

Nov 20 2019, 5:40 PM · Restricted Project
dschuff added inline comments to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.
Nov 20 2019, 3:57 PM · Restricted Project
dschuff added inline comments to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.
Nov 20 2019, 2:43 PM · Restricted Project
dschuff added inline comments to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.
Nov 20 2019, 12:56 PM · Restricted Project
dschuff added a comment to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.

If the SDK is distributed with the compiler and version-locked, it seems like it should be ok.

Nov 20 2019, 12:52 PM · Restricted Project
dschuff added inline comments to D70500: [WebAssembly] Enable use of wasm-opt and LTO-enabled system libraries.
Nov 20 2019, 10:51 AM · Restricted Project

Nov 15 2019

dschuff accepted D70347: [WebAssembly] Fix miscompile of select with and.
Nov 15 2019, 3:51 PM · Restricted Project

Nov 14 2019

dschuff added a comment to D52634: [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly operands locations.

@yurydelendik can you split and/or rename this patch?
@aprantl do you have any more feedback on the above, or any suggestions about who else might be interested?

Nov 14 2019, 11:02 AM · Restricted Project, debug-info