<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in WebAssemblyUtilities.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>beec3e8c - [WebAssembly][NFC] Consolidate TargetRegisterClass=&gt;COPY opcode conversion into a single helper</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#beec3e8c</link>
        <description>[WebAssembly][NFC] Consolidate TargetRegisterClass=&gt;COPY opcode conversion into a single helperPreviously WebAssemblyCFGStackify, WebAssemblyInstrInfo, andWebAssemblyPeephole all had equivalent logic for this. Move it into acommon helper in WebAssemblyUtilities.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Wed, 06 Jul 2022 13:43:49 +0000</pubDate>
        <dc:creator>Alex Bradbury &lt;asb@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>864767ab - [WebAssembly][NFC] Refactor WasmSymbol type setting code</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#864767ab</link>
        <description>[WebAssembly][NFC] Refactor WasmSymbol type setting codeThis refactors some code dealing with setting Wasm symbol types.Some of the code dealing with types was moved from`WebAssemblyUtilities` to  `WebAssemblyTypeUtilities`.Reviewed By: sbc100Differential Revision: https://reviews.llvm.org/D118121

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Fri, 28 Jan 2022 11:02:30 +0000</pubDate>
        <dc:creator>Paulo Matos &lt;pmatos@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>41bfac6a - [Target] Remove unused forward declarations (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#41bfac6a</link>
        <description>[Target] Remove unused forward declarations (NFC)

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Sun, 02 Jan 2022 18:20:15 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>4625b848 - [WebAssembly] Support clang -fwasm-exceptions for bitcode</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#4625b848</link>
        <description>[WebAssembly] Support clang -fwasm-exceptions for bitcodeThis supports bitcode compilation using `clang -fwasm-exceptions`.---The current situation:Currently the backend requires two options for Wasm EH:`-wasm-enable-eh` and `-exception-model=wasm`. Wasm SjLj requires twooptions as well: `-wasm-enable-sjlj` and `-exception-model=wasm`. Whenusing Wasm EH via Emscripten, you only need to pass `-fwasm-exceptions`,and these options will be added within the clang driver. Thisdescription will focus on the case of Wasm EH going forward, but WasmSjLj&apos;s case is similar.When you pass `-fwasm-exceptions` to emcc and clang driver, the clangdriver adds these options to the command line that calls the clangfrontend (`clang -cc1`): `-mllvm -wasm-enable-eh` and`-exception-model=wasm`. `-wasm-enable-eh` is prefixed with `-mllvm`, soit is passed as is to the backend. But `-exception-model` is parsed andprocessed within the clang frontend and stored in `LangOptions` class.This info is later transferred to `TargetOptions` class, and theneventually passed to `MCAsmInfo` class. All LLVM code queries this`MCAsmInfo` to get the exception model.---Problem:The problem is the whole `LangOptions` processing is bypassed whencompiling bitcode, so the information transfer of `LangOptions` -&gt;`TargetOptions` -&gt; `MCAsmInfo` does not happen. They are all set to`ExceptionHandling::None`, which is the default value.---What other targets do, and why we can&apos;t do the same:Other targets support bitcode compilation by the clang driver, but theycan do that by using different triples. For example, X86 target supportsmultiple triples, each of which has its own subclass of `MCAsmInfo`, soit can hardcode the appropriate exception model within those subclasses&apos;constructors. But we don&apos;t have separate triples for each exceptionmode: none, emscripten, and wasm.---What this CL does:If we can figure out whether `-wasm-enable-eh` is passed to the backend,we can programatically set the exception model from the backend, ratherthan requiring it to be passed.So we check `WasmEnableEH` and `WasmEnableSjLj` variables, which are`cl::opt` for `-wasm-enable-eh` and `-wasm-enable-sjlj`, in`WebAssemblyMCAsmInfo` constructor, and if either of them is set, we set`MCAsmInfo.ExceptionType` to Wasm. `TargetOptions` cannot be updatedthere, so we make sure they are the same later.Fixes https://github.com/emscripten-core/emscripten/issues/15712.Reviewed By: dschuffDifferential Revision: https://reviews.llvm.org/D115893

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Thu, 16 Dec 2021 02:10:57 +0000</pubDate>
        <dc:creator>Heejin Ahn &lt;aheejin@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>91fe069c - [WebAssembly] De-duplicate WasmAddressSpace and refactor reftype predicates</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#91fe069c</link>
        <description>[WebAssembly] De-duplicate WasmAddressSpace and refactor reftype predicatesThis is a non-functional change to remove the duplicateWasmAddressSpace enum and refactor reftype predicates by moving themto the Utilities source file.Reviewed By: tlivelyDifferential Revision: https://reviews.llvm.org/D111144

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Wed, 06 Oct 2021 07:28:36 +0000</pubDate>
        <dc:creator>Paulo Matos &lt;pmatos@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>46667a10 - [WebAssembly] Implementation of global.get/set for reftypes in LLVM IR</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#46667a10</link>
        <description>[WebAssembly] Implementation of global.get/set for reftypes in LLVM IRReland of 31859f896.This change implements new DAG notes GLOBAL_GET/GLOBAL_SET, andlowering methods for load and stores of reference types from IRglobals. Once the lowering creates the new nodes, tablegen patternmatches those and converts them to Wasm global.get/set.Reviewed By: tlivelyDifferential Revision: https://reviews.llvm.org/D104797

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Thu, 22 Jul 2021 19:11:39 +0000</pubDate>
        <dc:creator>Paulo Matos &lt;pmatos@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>c2c0d3ea - Revert &quot;[WebAssembly] Implementation of global.get/set for reftypes in LLVM IR&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#c2c0d3ea</link>
        <description>Revert &quot;[WebAssembly] Implementation of global.get/set for reftypes in LLVM IR&quot;This reverts commit 4facbf213c51e4add2e8c19b08d5e58ad71c72de.```********************FAIL: LLVM :: CodeGen/WebAssembly/funcref-call.ll (44466 of 44468)******************** TEST &apos;LLVM :: CodeGen/WebAssembly/funcref-call.ll&apos; FAILED ********************Script:--: &apos;RUN: at line 1&apos;;   /builddirs/llvm-project/build-Clang12/bin/llc &lt; /repositories/llvm-project/llvm/test/CodeGen/WebAssembly/funcref-call.ll --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types | /builddirs/llvm-project/build-Clang12/bin/FileCheck /repositories/llvm-project/llvm/test/CodeGen/WebAssembly/funcref-call.ll--Exit Code: 2Command Output (stderr):--llc: /repositories/llvm-project/llvm/include/llvm/Support/LowLevelTypeImpl.h:44: static llvm::LLT llvm::LLT::scalar(unsigned int): Assertion `SizeInBits &gt; 0 &amp;&amp; &quot;invalid scalar size&quot;&apos; failed.```

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Fri, 02 Jul 2021 08:48:44 +0000</pubDate>
        <dc:creator>Roman Lebedev &lt;lebedev.ri@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4facbf21 - [WebAssembly] Implementation of global.get/set for reftypes in LLVM IR</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#4facbf21</link>
        <description>[WebAssembly] Implementation of global.get/set for reftypes in LLVM IRReland of 31859f896.This change implements new DAG notes GLOBAL_GET/GLOBAL_SET, andlowering methods for load and stores of reference types from IRglobals. Once the lowering creates the new nodes, tablegen patternmatches those and converts them to Wasm global.get/set.Differential Revision: https://reviews.llvm.org/D104797

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Thu, 10 Jun 2021 08:02:10 +0000</pubDate>
        <dc:creator>Paulo Matos &lt;pmatos@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>64de8763 - Revert &quot;Implementation of global.get/set for reftypes in LLVM IR&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#64de8763</link>
        <description>Revert &quot;Implementation of global.get/set for reftypes in LLVM IR&quot;This reverts commit 31859f896cf90d64904134ce7b31230f374c3fcc.Causing SVE and RISCV-V test failures on bots.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Thu, 10 Jun 2021 10:11:17 +0000</pubDate>
        <dc:creator>David Spickett &lt;david.spickett@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>31859f89 - Implementation of global.get/set for reftypes in LLVM IR</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#31859f89</link>
        <description>Implementation of global.get/set for reftypes in LLVM IRThis change implements new DAG notes GLOBAL_GET/GLOBAL_SET, andlowering methods for load and stores of reference types from IRglobals. Once the lowering creates the new nodes, tablegen patternmatches those and converts them to Wasm global.get/set.Reviewed By: tlivelyDifferential Revision: https://reviews.llvm.org/D95425

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Thu, 10 Jun 2021 08:02:10 +0000</pubDate>
        <dc:creator>Paulo Matos &lt;pmatos@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>bc1ad6e3 - Revert &quot;[WebAssembly][CodeGen] IR support for WebAssembly local variables&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#bc1ad6e3</link>
        <description>Revert &quot;[WebAssembly][CodeGen] IR support for WebAssembly local variables&quot;This reverts commit bf35f4af51cddd743435bb6b94a45592c967891a.  There wasan error in a shared-library build.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Mon, 31 May 2021 08:55:15 +0000</pubDate>
        <dc:creator>Andy Wingo &lt;wingo@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>bf35f4af - [WebAssembly][CodeGen] IR support for WebAssembly local variables</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#bf35f4af</link>
        <description>[WebAssembly][CodeGen] IR support for WebAssembly local variablesThis patch adds TargetStackID::WasmLocal.  This stack holds locations ofvalues that are only addressable by name -- not via a pointer to memory.For the WebAssembly target, these objects are lowered to WebAssemblylocal variables, which are managed by the WebAssembly run-time and arenot addressable by linear memory.For the WebAssembly target IR indicates that an AllocaInst should be puton TargetStackID::WasmLocal by putting it in the non-integral addressspace WASM_ADDRESS_SPACE_WASM_VAR, with value 1.  SROA will mostly liftthese allocations to SSA locals, but any alloca that reaches instructionselection (usually in non-optimized builds) will be assigned the newTargetStackID there.  Loads and stores to those values are transformedto new WebAssemblyISD::LOCAL_GET / WebAssemblyISD::LOCAL_SET nodes,which then lower to the type-specific LOCAL_GET_I32 etc instructions viatablegen patterns.Differential Revision: https://reviews.llvm.org/D101140

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Wed, 21 Apr 2021 13:41:48 +0000</pubDate>
        <dc:creator>Andy Wingo &lt;wingo@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>ca5f07f8 - Revert &quot;[WebAssembly][CodeGen] IR support for WebAssembly local variables&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#ca5f07f8</link>
        <description>Revert &quot;[WebAssembly][CodeGen] IR support for WebAssembly local variables&quot;This reverts commit 00ecf18979e3326b3afee8af3dc701c53ffdc93f, as itbroke the AMDGPU build.  Will reland later with a fix.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Fri, 28 May 2021 10:42:12 +0000</pubDate>
        <dc:creator>Andy Wingo &lt;wingo@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>00ecf189 - [WebAssembly][CodeGen] IR support for WebAssembly local variables</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#00ecf189</link>
        <description>[WebAssembly][CodeGen] IR support for WebAssembly local variablesThis patch adds TargetStackID::WasmLocal.  This stack holds locations ofvalues that are only addressable by name -- not via a pointer to memory.For the WebAssembly target, these objects are lowered to WebAssemblylocal variables, which are managed by the WebAssembly run-time and arenot addressable by linear memory.For the WebAssembly target IR indicates that an AllocaInst should be puton TargetStackID::WasmLocal by putting it in the non-integral addressspace WASM_ADDRESS_SPACE_WASM_VAR, with value 1.  SROA will mostly liftthese allocations to SSA locals, but any alloca that reaches instructionselection (usually in non-optimized builds) will be assigned the newTargetStackID there.  Loads and stores to those values are transformedto new WebAssemblyISD::LOCAL_GET / WebAssemblyISD::LOCAL_SET nodes,which then lower to the type-specific LOCAL_GET_I32 etc instructions viatablegen patterns.Differential Revision: https://reviews.llvm.org/D101140

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Wed, 21 Apr 2021 13:41:48 +0000</pubDate>
        <dc:creator>Andy Wingo &lt;wingo@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>d7086af2 - [WebAssembly] Support for WebAssembly globals in LLVM IR</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#d7086af2</link>
        <description>[WebAssembly] Support for WebAssembly globals in LLVM IRThis patch adds support for WebAssembly globals in LLVM IR, representingthem as pointers to global values, in a non-default, non-integraladdress space.  Instruction selection legalizes loads and stores tothese pointers to new WebAssemblyISD nodes GLOBAL_GET and GLOBAL_SET.Once the lowering creates the new nodes, tablegen pattern matches thoseand converts them to Wasm global.get/set of the appropriate type.Based on work by Paulo Matos in https://reviews.llvm.org/D95425.Reviewed By: pmatosDifferential Revision: https://reviews.llvm.org/D101608

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Tue, 04 May 2021 12:13:08 +0000</pubDate>
        <dc:creator>Paulo Matos &lt;pmatos@igalia.com&gt;</dc:creator>
    </item>
<item>
        <title>0b2bc69b - [WebAssembly] Put utility functions in Utils directory (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h#0b2bc69b</link>
        <description>[WebAssembly] Put utility functions in Utils directory (NFC)This CL1. Creates Utils/ directory under lib/Target/WebAssembly2. Moves existing WebAssemblyUtilities.cpp|h into the Utils/ directory3. Creates Utils/WebAssemblyTypeUtilities.cpp|h and put type   declarataions and type conversion functions scattered in various   places into this single place.It has been suggested several times that it is not easy to share utilityfunctions between subdirectories (AsmParser, DIsassembler, MCTargetDesc,...). Sometimes we ended up [[ https://reviews.llvm.org/D92840#2478863 | duplicating ]] the same function because ofthis.There are already other targets doing this: AArch64, AMDGPU, and ARMhave Utils/ subdirectory under their target directory.This extracts the utility functions into a single directory Utils/ andmake them sharable among all passes in WebAssembly/ and itssubdirectories. Also I believe gathering all type-related conversionfunctionalities into a single place makes it more usable. (Actually Iwas working on another CL that uses various type conversion functionsscattered in multiple places, which became the motivation for this CL.)Reviewed By: dschuff, aardappelDifferential Revision: https://reviews.llvm.org/D100995

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/WebAssemblyUtilities.h</description>
        <pubDate>Wed, 21 Apr 2021 18:44:40 +0000</pubDate>
        <dc:creator>Heejin Ahn &lt;aheejin@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
