<?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 test_alias_analysis.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>557cc2d6 - Another batch of dependency updates (#11832)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs#557cc2d6</link>
        <description>Another batch of dependency updates (#11832)* Another batch of dependency updatesBringing some deps in `Cargo.toml` up-to-date with their latest versionsalong the same lines as #11820 to avoid deps getting too stale/old.Code-wise this updates `anyhow` which enables preexisting Clippywarnings to check more code, so those warnings are fixed here as well.prtest:full* Run rustfmt

            List of files:
            /wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs</description>
        <pubDate>Fri, 10 Oct 2025 17:12:23 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>90ac295e - Update Wasmtime to the 2024 Rust Edition (#10806)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs#90ac295e</link>
        <description>Update Wasmtime to the 2024 Rust Edition (#10806)* Update Wasmtime to the 2024 Rust EditionNow that our MSRV supports the 2024 edition it&apos;s possible to make thisswitch. This commit moves Wasmtime to the 2024 Edition to keepup-to-date with Rust idioms and access many of the edition featuresexclusive to the 2024 edition.prtest:full* Reformat with the 2024 edition

            List of files:
            /wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs</description>
        <pubDate>Mon, 19 May 2025 16:40:55 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>9ce3ffe1 - Update some CI dependencies (#7983)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs#9ce3ffe1</link>
        <description>Update some CI dependencies (#7983)* Update some CI dependencies* Update to the latest nightly toolchain* Update mdbook* Update QEMU for cross-compiled testing* Update `cargo nextest` for usage with MIRIprtest:full* Remove lots of unnecessary imports* Downgrade qemu as 8.2.1 seems to segfault* Remove more imports* Remove unused winch trait method* Fix warnings about unused trait methods* More unused imports* More unused imports

            List of files:
            /wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs</description>
        <pubDate>Thu, 22 Feb 2024 23:54:03 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>230e2135 - Cranelift: remove non-egraphs optimization pipeline and `use_egraphs` option. (#6167)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs#230e2135</link>
        <description>Cranelift: remove non-egraphs optimization pipeline and `use_egraphs` option. (#6167)* Cranelift: remove non-egraphs optimization pipeline and `use_egraphs` option.This PR removes the LICM, GVN, and preopt passes, and associated supportpieces, from `cranelift-codegen`. Not to worry, we still haveoptimizations: the egraph framework subsumes all of these, and has beenon by default since #5181.A few decision points:- Filetests for the legacy LICM, GVN and simple_preopt were removed too.  As we built optimizations in the egraph framework we wrote new tests  for the equivalent functionality, and many of the old tests were  testing specific behaviors in the old implementations that may not be  relevant anymore. However if folks prefer I could take a different  approach here and try to port over all of the tests.- The corresponding filetest modes (commands) were deleted too. The  `test alias_analysis` mode remains, but no longer invokes a separate  GVN first (since there is no separate GVN that will not also do alias  analysis) so the tests were tweaked slightly to work with that. The  egrpah testsuite also covers alias analysis.- The `divconst_magic_numbers` module is removed since it&apos;s unused  without `simple_preopt`, though this is the one remaining optimization  we still need to build in the egraphs framework, pending #5908. The  magic numbers will live forever in git history so removing this in the  meantime is not a major issue IMHO.- The `use_egraphs` setting itself was removed at both the Cranelift and  Wasmtime levels. It has been marked deprecated for a few releases now  (Wasmtime 6.0, 7.0, upcoming 8.0, and corresponding Cranelift  versions) so I think this is probably OK. As an alternative if anyone  feels strongly, we could leave the setting and make it a no-op.* Update test outputs for remaining test differences.

            List of files:
            /wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs</description>
        <pubDate>Thu, 06 Apr 2023 18:11:03 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>0824abba - Add a basic alias analysis with redundant-load elim and store-to-load fowarding opts. (#4163)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs#0824abba</link>
        <description>Add a basic alias analysis with redundant-load elim and store-to-load fowarding opts. (#4163)This PR adds a basic *alias analysis*, and optimizations that use it.This is a &quot;mid-end optimization&quot;: it operates on CLIF, themachine-independent IR, before lowering occurs.The alias analysis (or maybe more properly, a sort of memory-valueanalysis) determines when it can prove a particular memorylocation is equal to a given SSA value, and when it can, it replaces anyloads of that location.This subsumes two common optimizations:* Redundant load elimination: when the same memory address is loaded two  times, and it can be proven that no intervening operations will write  to that memory, then the second load is *redundant* and its result  must be the same as the first. We can use the first load&apos;s result and  remove the second load.* Store-to-load forwarding: when a load can be proven to access exactly  the memory written by a preceding store, we can replace the load&apos;s  result with the store&apos;s data operand, and remove the load.Both of these optimizations rely on a &quot;last store&quot; analysis that is asort of coloring mechanism, split across disjoint categories of abstractstate. The basic idea is that every memory-accessing operation is putinto one of N disjoint categories; it is disallowed for memory to everbe accessed by an op in one category and later accessed by an op inanother category. (The frontend must ensure this.)Then, given this, we scan the code and determine, for eachmemory-accessing op, when a single prior instruction is a store to thesame category. This &quot;colors&quot; the instruction: it is, in a sense, astatic name for that version of memory.This analysis provides an important invariant: if two operations accessmemory with the same last-store, then *no other store can alias* in thetime between that last store and these operations. This must-not-aliasproperty, together with a check that the accessed address is *exactlythe same* (same SSA value and offset), and other attributes of theaccess (type, extension mode) are the same, let us prove that theresults are the same.Given last-store info, we scan the instructions and build a table from&quot;memory location&quot; key (last store, address, offset, type, extension) toknown SSA value stored in that location. A store inserts a new mapping.A load may also insert a new mapping, if we didn&apos;t already have one.Then when a load occurs and an entry already exists for its &quot;location&quot;,we can reuse the value. This will be either RLE or St-to-Ld depending onwhere the value came from.Note that this *does* work across basic blocks: the last-store analysisis a full iterative dataflow pass, and we are careful to check dominanceof a previously-defined value before aliasing to it at a potentiallyredundant load. So we will do the right thing if we only have a&quot;partially redundant&quot; load (loaded already but only in one predecessorblock), but we will also correctly reuse a value if there is a store orload above a loop and a redundant load of that value within the loop, aslong as no potentially-aliasing stores happen within the loop.

            List of files:
            /wasmtime-44.0.1/cranelift/filetests/src/test_alias_analysis.rs</description>
        <pubDate>Fri, 20 May 2022 20:19:32 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
</channel>
</rss>
