Page MenuHomePhabricator

wingo (Andy Wingo)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 12 2019, 6:38 AM (96 w, 6 d)

Recent Activity

Tue, Jun 1

wingo committed rG82f92e35c646: [WebAssembly][CodeGen] IR support for WebAssembly local variables (authored by wingo).
[WebAssembly][CodeGen] IR support for WebAssembly local variables
Tue, Jun 1, 2:34 AM
wingo closed D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
Tue, Jun 1, 2:34 AM · Restricted Project, Restricted Project

Mon, May 31

wingo added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Quick r? to @tlively -- OK with having the new util function in WebAssemblyFrameLowering? It didn't work to have it in the utils library because the function needs the vtable of WebAssemblyFunctionInfo.

Mon, May 31, 3:18 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Fix shared-library build by moving util function to WebAssemblyFrameLowering.

Mon, May 31, 3:17 AM · Restricted Project, Restricted Project
wingo reopened D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Yarrrgh, broke the shared library build. Fix incoming...

Mon, May 31, 1:56 AM · Restricted Project, Restricted Project
wingo added a reverting change for rGbf35f4af51cd: [WebAssembly][CodeGen] IR support for WebAssembly local variables: rGbc1ad6e3c49d: Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables".
Mon, May 31, 1:55 AM
wingo committed rGbc1ad6e3c49d: Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables" (authored by wingo).
Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables"
Mon, May 31, 1:55 AM
wingo added a reverting change for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables: rGbc1ad6e3c49d: Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables".
Mon, May 31, 1:55 AM · Restricted Project, Restricted Project
wingo committed rGbf35f4af51cd: [WebAssembly][CodeGen] IR support for WebAssembly local variables (authored by wingo).
[WebAssembly][CodeGen] IR support for WebAssembly local variables
Mon, May 31, 1:42 AM
wingo closed D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
Mon, May 31, 1:42 AM · Restricted Project, Restricted Project
wingo added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Is it just me or does having a backend-specific type in target-independent code feel wrong? It feels like there should be a space for target-specific TargetStackIDs...

Hoo, good question. More support for target-specific handling of stack IDs would be great. However in this case the concept is not purely wasm-specific; I can imagine other targets that might have a similar treatment of locals (if we had a .net target, or a jvm target, or so). The idea is that there is a separate stack consisting of named locals that may not be addressable by pointers to main memory. In earlier drafts of this patch the name was more generic ("Object", then "Managed") but you know, our words in this area are quite overloaded. So instead I went with something quite specific (WasmLocal) to avoid the general question -- but I do think the concept is not specific, even if it doesn't apply to any other target currently in tree. WDYT?

Well, except all the logic for it is in the backend, only the parser and the definition are in target-independent code, so even if another backend were to reuse it it would have its own completely separate logic for it, and thus there's no benefit to reusing a shared name for the thing over each target defining its own? Or would some of the code in the wasm backend be refactored out into CodeGen?

Mon, May 31, 1:17 AM · Restricted Project, Restricted Project

Fri, May 28

wingo added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Is it just me or does having a backend-specific type in target-independent code feel wrong? It feels like there should be a space for target-specific TargetStackIDs...

Fri, May 28, 6:19 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Fix build for RISC-V and AMDGPU.

Fri, May 28, 4:29 AM · Restricted Project, Restricted Project
wingo reopened D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
Fri, May 28, 4:29 AM · Restricted Project, Restricted Project
wingo committed rGca5f07f8c4bc: Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables" (authored by wingo).
Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables"
Fri, May 28, 3:43 AM
wingo added a reverting change for rG00ecf18979e3: [WebAssembly][CodeGen] IR support for WebAssembly local variables: rGca5f07f8c4bc: Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables".
Fri, May 28, 3:43 AM
wingo added a reverting change for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables: rGca5f07f8c4bc: Revert "[WebAssembly][CodeGen] IR support for WebAssembly local variables".
Fri, May 28, 3:43 AM · Restricted Project, Restricted Project
wingo committed rG00ecf18979e3: [WebAssembly][CodeGen] IR support for WebAssembly local variables (authored by wingo).
[WebAssembly][CodeGen] IR support for WebAssembly local variables
Fri, May 28, 2:10 AM
wingo closed D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
Fri, May 28, 2:10 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Adapt test to insert compiler barrier.

Fri, May 28, 2:09 AM · Restricted Project, Restricted Project
wingo added inline comments to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
Fri, May 28, 2:05 AM · Restricted Project, Restricted Project

Wed, May 26

wingo added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Gentle ping here to @tlively :)

Wed, May 26, 11:55 PM · Restricted Project, Restricted Project

May 21 2021

wingo added inline comments to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
May 21 2021, 5:01 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Address feedback

May 21 2021, 5:01 AM · Restricted Project, Restricted Project
wingo updated the summary of D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
May 21 2021, 4:47 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Rebase

May 21 2021, 4:46 AM · Restricted Project, Restricted Project
wingo committed rG81bc73281610: [IR][Verifier] Relax restriction on alloca address spaces (authored by wingo).
[IR][Verifier] Relax restriction on alloca address spaces
May 21 2021, 2:55 AM
wingo closed D101045: [IR][Verifier] Relax restriction on alloca address spaces.
May 21 2021, 2:55 AM · Restricted Project
wingo retitled D101045: [IR][Verifier] Relax restriction on alloca address spaces from [IR][Verifier] Targets can specify multiple alloca address spaces to [IR][Verifier] Relax restriction on alloca address spaces.
May 21 2021, 12:26 AM · Restricted Project

May 20 2021

wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Remove AMDGPU test that alloca in wrong addrspace fails to verify

May 20 2021, 1:21 AM · Restricted Project

May 19 2021

wingo added inline comments to D101045: [IR][Verifier] Relax restriction on alloca address spaces.
May 19 2021, 2:13 AM · Restricted Project
wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Tweak alloca langref language

May 19 2021, 2:07 AM · Restricted Project

May 18 2021

wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Fix drop-debug-info-nonzero-alloca test

May 18 2021, 7:50 AM · Restricted Project
wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Go back to first version of patch, removing verifier restriction on alloca address spaces

May 18 2021, 7:48 AM · Restricted Project

May 17 2021

wingo added inline comments to D95425: Implementation of global.get/set for reftypes in LLVM IR.
May 17 2021, 4:47 AM · Restricted Project, Restricted Project
wingo added a comment to D101045: [IR][Verifier] Relax restriction on alloca address spaces.

It hadn't occurred to me to add a field to the datalayout purely for the verifier. That seems a bit strange, since it's not exactly a target property.

Yeah understood. If we want some targets to have the check and some to not have the check, do you know of a better place to express this? I thought the same place that the target's alloca address space is defined might not be unreasonable, but I am new here :)

I think we should have target specific IR verifiers, not pollute the datalayout. There are a number of other places such a verifier would be useful

May 17 2021, 1:06 AM · Restricted Project

May 11 2021

wingo committed rGb2f21b145aec: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols (authored by wingo).
[CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols
May 11 2021, 2:49 AM
wingo closed D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols.
May 11 2021, 2:48 AM · Restricted Project
wingo updated the diff for D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols.

Rename "managed" address space to "wasm var".

May 11 2021, 2:37 AM · Restricted Project
wingo committed rGd7086af2143d: [WebAssembly] Support for WebAssembly globals in LLVM IR (authored by pmatos).
[WebAssembly] Support for WebAssembly globals in LLVM IR
May 11 2021, 2:24 AM
wingo closed D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 11 2021, 2:24 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Update in response to parent commit changes

May 11 2021, 1:41 AM · Restricted Project, Restricted Project
wingo updated the diff for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Rename "managed" address space to "wasm vars"

May 11 2021, 1:39 AM · Restricted Project, Restricted Project
wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Fix spurious whitespace

May 11 2021, 1:04 AM · Restricted Project
wingo retitled D101045: [IR][Verifier] Relax restriction on alloca address spaces from [IR][Verifier] Targets can allow alloca outside alloca address space to [IR][Verifier] Targets can specify multiple alloca address spaces.
May 11 2021, 1:02 AM · Restricted Project
wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Address feedback from tlively

May 11 2021, 12:59 AM · Restricted Project

May 10 2021

wingo added inline comments to D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols.
May 10 2021, 5:08 AM · Restricted Project
wingo added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 10 2021, 12:26 AM · Restricted Project, Restricted Project

May 6 2021

wingo added inline comments to D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols.
May 6 2021, 8:01 AM · Restricted Project
wingo updated the diff for D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols.

Rename "object" to "managed", and address feedback

May 6 2021, 8:00 AM · Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Rename "object" to "managed", and add test for stack id

May 6 2021, 5:17 AM · Restricted Project, Restricted Project
wingo updated the diff for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

yarr, shiver me timbers, fix me typos

May 6 2021, 4:43 AM · Restricted Project, Restricted Project
wingo updated the diff for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Rename "object" address space to "managed"; address feedback.

May 6 2021, 3:27 AM · Restricted Project, Restricted Project
wingo added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 6 2021, 3:24 AM · Restricted Project, Restricted Project
wingo added a comment to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Thanks for the review!

May 6 2021, 3:22 AM · Restricted Project, Restricted Project

May 5 2021

wingo added a comment to D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols.

Hi! Please take a look. The code duplication is horrible and suggestions to fix are most welcome. Normally, overriding emitGlobalVariable would be sufficient, but we also need to visit uses of Wasm globals, even if they aren't defined in the compilation unit. The code in GetGlobalAddressSymbol would be sufficient, but we also need to visit definitions that aren't used. Irritating!

May 5 2021, 8:29 AM · Restricted Project
wingo requested review of D101913: [CodeGen][WebAssembly] Better lowering for WASM_SYMBOL_TYPE_GLOBAL symbols.
May 5 2021, 8:22 AM · Restricted Project
wingo updated the diff for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Pull in fixes from D101140

May 5 2021, 2:04 AM · Restricted Project, Restricted Project
wingo updated the diff for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Address feedback

May 5 2021, 12:55 AM · Restricted Project, Restricted Project
wingo added inline comments to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
May 5 2021, 12:51 AM · Restricted Project, Restricted Project

May 4 2021

wingo added inline comments to D95425: Implementation of global.get/set for reftypes in LLVM IR.
May 4 2021, 7:46 AM · Restricted Project, Restricted Project
wingo updated the diff for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Rebase on main

May 4 2021, 7:02 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Fix clang datalayout expectations

May 4 2021, 4:22 AM · Restricted Project, Restricted Project
wingo added 1 blocking reviewer(s) for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR: tlively.
May 4 2021, 4:15 AM · Restricted Project, Restricted Project
wingo added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Rebased on top of https://reviews.llvm.org/D101608, and removed reftypes support, as it turns out that the notion of WebAssembly locals in IR is sufficiently general that externref/funcref can be added in a followup. WDYT @tlively, @dschuff , @pmatos ?

May 4 2021, 1:28 AM · Restricted Project, Restricted Project
wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Remove reftypes

May 4 2021, 1:25 AM · Restricted Project, Restricted Project
wingo retitled D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables from [WebAssembly][CodeGen] Allow for externref/funcref local variables to [WebAssembly][CodeGen] IR support for WebAssembly local variables.
May 4 2021, 1:24 AM · Restricted Project, Restricted Project

Apr 30 2021

wingo updated the diff for D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Fix clang datalayout expectations

Apr 30 2021, 6:12 AM · Restricted Project, Restricted Project
wingo added a comment to D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.

Context here is that I realized that in D95425, that we could use a single address space for globals of any type, and that it might make sense to do so for "ordinary" globals like i32 etc. Then we can express adding support for funcref / externref on top of this. WDYT @pmatos ?

Apr 30 2021, 2:39 AM · Restricted Project, Restricted Project
wingo requested review of D101608: [WebAssembly] Support for WebAssembly globals in LLVM IR.
Apr 30 2021, 2:34 AM · Restricted Project, Restricted Project

Apr 29 2021

wingo added inline comments to D95425: Implementation of global.get/set for reftypes in LLVM IR.
Apr 29 2021, 8:24 AM · Restricted Project, Restricted Project
wingo added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Nice! This turns out to be relatively simple. It would be good to add more tests with reference typed locals mixed in with normal locals, etc.

Apr 29 2021, 1:55 AM · Restricted Project, Restricted Project

Apr 28 2021

wingo updated the diff for D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

Rebase, and add A0:u addrspace qualifier

Apr 28 2021, 2:02 AM · Restricted Project, Restricted Project

Apr 27 2021

wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.
  • Fix typo in LangRef
Apr 27 2021, 1:42 AM · Restricted Project
wingo retitled D101045: [IR][Verifier] Relax restriction on alloca address spaces from [IR][Verifier] Allow alloca outside alloca address space to [IR][Verifier] Targets can allow alloca outside alloca address space.
Apr 27 2021, 1:39 AM · Restricted Project
wingo added inline comments to D95425: Implementation of global.get/set for reftypes in LLVM IR.
Apr 27 2021, 12:38 AM · Restricted Project, Restricted Project
wingo added a comment to D101045: [IR][Verifier] Relax restriction on alloca address spaces.

It hadn't occurred to me to add a field to the datalayout purely for the verifier. That seems a bit strange, since it's not exactly a target property.

Apr 27 2021, 12:07 AM · Restricted Project

Apr 23 2021

wingo updated the diff for D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Instead of globally relaxing the restriction on alloca address spaces,
allow targets to choose whether to impose the restriction via the
datalayout.

Apr 23 2021, 1:47 AM · Restricted Project
wingo added a comment to D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Thanks for your time, arsenm.

Apr 23 2021, 12:18 AM · Restricted Project

Apr 22 2021

wingo added a comment to D101045: [IR][Verifier] Relax restriction on alloca address spaces.

I posted https://reviews.llvm.org/D101140 just for context -- based on this patch, and @pmatos's work on https://reviews.llvm.org/D95425.

Apr 22 2021, 11:55 PM · Restricted Project
wingo added a comment to D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.

This is an early WIP; posting just to give context for D101045.

Apr 22 2021, 11:36 PM · Restricted Project, Restricted Project
wingo requested review of D101140: [WebAssembly][CodeGen] IR support for WebAssembly local variables.
Apr 22 2021, 11:35 PM · Restricted Project, Restricted Project
wingo added a comment to D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Pre-merge checks show that https://github.com/llvm/llvm-project/blob/main/llvm/test/CodeGen/AMDGPU/invalid-alloca.ll fails; will need to follow up in a similar way.

Apr 22 2021, 7:01 AM · Restricted Project
wingo updated subscribers of D101045: [IR][Verifier] Relax restriction on alloca address spaces.

Cc arsenm, as he added the address space restriction for alloca when he added address space support for alloca in https://github.com/llvm/llvm-project/commit/3c1fc768ed6cf2b01463df036ae6ae3b1f0de632.

Apr 22 2021, 4:18 AM · Restricted Project
wingo requested review of D101045: [IR][Verifier] Relax restriction on alloca address spaces.
Apr 22 2021, 4:12 AM · Restricted Project
wingo added a comment to D100995: [WebAssembly] Put utility functions in Utils directory (NFC).

@wingo, I wanted to merge WebAssembly::getOrCreateFunctionTableSymbol in WebAssemblyUtilities.cpp and GetOrCreateFunctionTableSymbol in WebAssemblyAsmParser.cpp and put it in Utils/WebAssemblyUtilities.cpp, but it looks they became diverged in D90948 and are not the same anymore. Can they still be merged?

Apr 22 2021, 12:20 AM · Restricted Project

Apr 19 2021

wingo added inline comments to D95425: Implementation of global.get/set for reftypes in LLVM IR.
Apr 19 2021, 2:24 AM · Restricted Project, Restricted Project

Apr 7 2021

wingo accepted D99960: [WebAssembly] Improve error messages regarding missing indirect function table. NFC.
Apr 7 2021, 12:42 AM · Restricted Project

Mar 24 2021

wingo committed rGc9801db2eb4b: [WebAssembly][MC] Record limit constraints for table sizes (authored by wingo).
[WebAssembly][MC] Record limit constraints for table sizes
Mar 24 2021, 1:48 AM
wingo closed D99191: [WebAssembly][MC] Record limit constraints for table sizes.
Mar 24 2021, 1:47 AM · Restricted Project
wingo updated the diff for D99191: [WebAssembly][MC] Record limit constraints for table sizes.

Address feedback

Mar 24 2021, 1:44 AM · Restricted Project
wingo added inline comments to D99191: [WebAssembly][MC] Record limit constraints for table sizes.
Mar 24 2021, 1:38 AM · Restricted Project
wingo committed rG9ac5620cb854: [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC. (authored by wingo).
[WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC.
Mar 24 2021, 1:11 AM
wingo closed D99186: [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC..
Mar 24 2021, 1:11 AM · Restricted Project
wingo updated the diff for D99186: [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC..

Fix missing test adaptations

Mar 24 2021, 1:10 AM · Restricted Project

Mar 23 2021

wingo added 1 blocking reviewer(s) for D99191: [WebAssembly][MC] Record limit constraints for table sizes: sbc100.
Mar 23 2021, 8:22 AM · Restricted Project
wingo requested review of D99191: [WebAssembly][MC] Record limit constraints for table sizes.
Mar 23 2021, 8:22 AM · Restricted Project
wingo updated the diff for D99186: [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC..

Add missing rename from Initial to Minimum

Mar 23 2021, 8:17 AM · Restricted Project
wingo added reviewers for D99186: [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC.: sbc100, aardappel.

Commit log says it all. Sam feel free to pass this one off to someone else, or to tell me this is a terrible idea!

Mar 23 2021, 7:05 AM · Restricted Project
wingo requested review of D99186: [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC..
Mar 23 2021, 7:03 AM · Restricted Project