<?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 progpoint.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>a0442ea0 - Enforce `uninlined_format_args` for the workspace (#9065)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#a0442ea0</link>
        <description>Enforce `uninlined_format_args` for the workspace (#9065)* Enforce `uninlined_format_args` for the workspace* fix: failing `Monolith Checks` job* fix: formatting

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Mon, 05 Aug 2024 09:59:59 +0000</pubDate>
        <dc:creator>Hamir Mahal &lt;hamirmahal@gmail.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/codegen/src/ir/progpoint.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/codegen/src/ir/progpoint.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>a81c2068 - Various cleanups to Layout (#6042)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#a81c2068</link>
        <description>Various cleanups to Layout (#6042)* Use inst_block instead of pp_block where possible* Remove unused is_block_gap method* Remove ProgramOrder traitIt only has a single implementation* Rename Layout::cmp to pp_cmp to distinguish it from Ord::cmp* Make pp_block non-generic* Use rpo_cmp_block instead of rpo_cmp in the verifier* Remove ProgramPoint* Rename ExpandedProgramPoint to ProgramPoint* Remove From&lt;ValueDef&gt; for ProgramPoint impl

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Fri, 17 Mar 2023 18:46:34 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>f980defe - egraph support: rewrite to work in terms of CLIF data structures.  (#5382)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#f980defe</link>
        <description>egraph support: rewrite to work in terms of CLIF data structures.  (#5382)* egraph support: rewrite to work in terms of CLIF data structures.This work rewrites the &quot;egraph&quot;-based optimization framework inCranelift to operate on aegraphs (acyclic egraphs) represented in theCLIF itself rather than as a separate data structure to which and fromwhich we translate the CLIF.The basic idea is to add a new kind of value, a &quot;union&quot;, that is like analias but refers to two other values rather than one.  This allows us torepresent an eclass of enodes (values) as a tree. The union node allowsfor a value to have *multiple representations*: either constituent valuecould be used, and (in well-formed CLIF produced by correctoptimization rules) they must be equivalent.Like the old egraph infrastructure, we take advantage of acyclicity andeager rule application to do optimization in a single pass. Like before,we integrate GVN (during the optimization pass) and LICM (duringelaboration).Unlike the old egraph infrastructure, everything stays in theDataFlowGraph. &quot;Pure&quot; enodes are represented as instructions that havevalues attached, but that are not placed into the function layout. Whenentering &quot;egraph&quot; form, we remove them from the layout while optimizing.When leaving &quot;egraph&quot; form, during elaboration, we can place aninstruction back into the layout the first time we elaborate the enode;if we elaborate it more than once, we clone the instruction.The implementation performs two passes overall:- One, a forward pass in RPO (to see defs before uses), that (i) removes  &quot;pure&quot; instructions from the layout and (ii) optimizes as it goes. As  before, we eagerly optimize, so we form the entire union of optimized  forms of a value before we see any uses of that value. This lets us  rewrite uses to use the most &quot;up-to-date&quot; form of the value and  canonicalize and optimize that form.  The eager rewriting and acyclic representation make each other work  (we could not eagerly rewrite if there were cycles; and acyclicity  does not miss optimization opportunities only because the first time  we introduce a value, we immediately produce its &quot;best&quot; form). This  design choice is also what allows us to avoid the &quot;parent pointers&quot;  and fixpoint loop of traditional egraphs.  This forward optimization pass keeps a scoped hashmap to &quot;intern&quot;  nodes (thus performing GVN), and also interleaves on a per-instruction  level with alias analysis. The interleaving with alias analysis allows  alias analysis to see the most optimized form of each address (so it  can see equivalences), and allows the next value to see any  equivalences (reuses of loads or stored values) that alias analysis  uncovers.- Two, a forward pass in domtree preorder, that &quot;elaborates&quot; pure enodes  back into the layout, possibly in multiple places if needed. This  tracks the loop nest and hoists nodes as needed, performing LICM as it  goes. Note that by doing this in forward order, we avoid the  &quot;fixpoint&quot; that traditional LICM needs: we hoist a def before its  uses, so when we place a node, we place it in the right place the  first time rather than moving later.This PR replaces the old (a)egraph implementation. It removes both thecranelift-egraph crate and the logic in cranelift-codegen that uses it.On `spidermonkey.wasm` running a simple recursive Fibonaccimicrobenchmark, this work shows 5.5% compile-time reduction and 7.7%runtime improvement (speedup).Most of this implementation was done in (very productive) pairprogramming sessions with Jamey Sharp, thus:Co-authored-by: Jamey Sharp &lt;jsharp@fastly.com&gt;* Review feedback.* Review feedback.* Review feedback.* Bugfix: cprop rule: `(x + k1) - k2` becomes `x - (k2 - k1)`, not `x - (k1 - k2)`.Co-authored-by: Jamey Sharp &lt;jsharp@fastly.com&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Tue, 06 Dec 2022 22:58:57 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>07f335dc - Rename &apos;an block&apos; to &apos;a block&apos;</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#07f335dc</link>
        <description>Rename &apos;an block&apos; to &apos;a block&apos;Missed this in the automatic rename of &apos;Ebb&apos; to &apos;Block&apos;.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Tue, 03 Mar 2020 19:17:30 +0000</pubDate>
        <dc:creator>Ryan Hunt &lt;rhunt@eqrion.net&gt;</dc:creator>
    </item>
<item>
        <title>832666c4 - Mass rename Ebb and relatives to Block (#1365)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#832666c4</link>
        <description>Mass rename Ebb and relatives to Block (#1365)* Manually rename BasicBlock to BlockPredecessorBasicBlock is a pair of (Ebb, Inst) that is used to represent thebasic block subcomponent of an Ebb that is a predecessor to an Ebb.Eventually we will be able to remove this struct, but for now itmakes sense to give it a non-conflicting name so that we can startto transition Ebb to represent a basic block.I have not updated any comments that refer to BasicBlock, aseventually we will remove BlockPredecessor and replace with Block,which is a basic block, so the comments will become correct.* Manually rename SSABuilder block types to avoid conflictSSABuilder has its own Block and BlockData types. These along withassociated identifier will cause conflicts in a later commit, sothey are renamed to be more verbose here.* Automatically rename &apos;Ebb&apos; to &apos;Block&apos; in *.rs* Automatically rename &apos;EBB&apos; to &apos;block&apos; in *.rs* Automatically rename &apos;ebb&apos; to &apos;block&apos; in *.rs* Automatically rename &apos;extended basic block&apos; to &apos;basic block&apos; in *.rs* Automatically rename &apos;an basic block&apos; to &apos;a basic block&apos; in *.rs* Manually update comment for `Block``Block`&apos;s wikipedia article required an update.* Automatically rename &apos;an `Block`&apos; to &apos;a `Block`&apos; in *.rs* Automatically rename &apos;extended_basic_block&apos; to &apos;basic_block&apos; in *.rs* Automatically rename &apos;ebb&apos; to &apos;block&apos; in *.clif* Manually rename clif constant that contains &apos;ebb&apos; as substring to avoid conflict* Automatically rename filecheck uses of &apos;EBB&apos; to &apos;BB&apos;&apos;regex: EBB&apos; -&gt; &apos;regex: BB&apos;&apos;$EBB&apos; -&gt; &apos;$BB&apos;* Automatically rename &apos;EBB&apos; &apos;Ebb&apos; to &apos;block&apos; in *.clif* Automatically rename &apos;an block&apos; to &apos;a block&apos; in *.clif* Fix broken testcase when function name length increasesTest function names are limited to 16 characters. This causesthe new longer name to be truncated and fail a filecheck test. Anoutdated comment was also fixed.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Fri, 07 Feb 2020 16:46:47 +0000</pubDate>
        <dc:creator>Ryan Hunt &lt;rhunt@eqrion.net&gt;</dc:creator>
    </item>
<item>
        <title>9f506692 - Fix clippy warnings.</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#9f506692</link>
        <description>Fix clippy warnings.This commit fixes the current set of (stable) clippy warnings in the repo.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Thu, 24 Oct 2019 06:15:42 +0000</pubDate>
        <dc:creator>Peter Huene &lt;phuene@mozilla.com&gt;</dc:creator>
    </item>
<item>
        <title>10e226f9 - Always use extern crate std in cranelift-codegen</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#10e226f9</link>
        <description>Always use extern crate std in cranelift-codegen

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Sat, 28 Sep 2019 13:52:23 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>747ad3c4 - moved crates in lib/ to src/, renamed crates, modified some files&apos; text (#660)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs#747ad3c4</link>
        <description>moved crates in lib/ to src/, renamed crates, modified some files&apos; text (#660)moved crates in lib/ to src/, renamed crates, modified some files&apos; text (#660)

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/progpoint.rs</description>
        <pubDate>Mon, 28 Jan 2019 23:56:54 +0000</pubDate>
        <dc:creator>lazypassion &lt;25536767+lazypassion@users.noreply.github.com&gt;</dc:creator>
    </item>
</channel>
</rss>
