<?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 settings.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>2f7dbd61 - PCC: remove proof-carrying code (for now?). (#12800)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#2f7dbd61</link>
        <description>PCC: remove proof-carrying code (for now?). (#12800)In late 2023, we built out an experimental feature calledProof-Carrying Code (PCC), where we attached &quot;facts&quot; to values in theCLIF IR and built verification of these facts after lowering tomachine instructions. We also added &quot;memory types&quot; describing layoutof memory and a &quot;checked&quot; flag on memory operations such that we couldverify that any checked memory operation accessed valid memory (asdefined by memory types attached to pointer values viafacts). Wasmtime&apos;s Cranelift backend then put appropriate memory typesand facts in its IR such that all accesses to memory (aspirationally)could be checked, taking the whole mid-end and lowering backend ofCranelift out of the trusted core that enforces SFI.This basically worked, at the time, for static memories; but never fordynamic memories, and then work on the feature lostprioritization (aka I had to work on other things) and I wasn&apos;t ableto complete it and put it in fuzzing/enable it as a production option.Unfortunately since then it has bit-rotted significantly -- as we addnew backend optimizations and instruction lowerings we haven&apos;t keptthe PCC framework up to date.Inspired by the discussion in #12497 I think it&apos;s time to deleteit (hopefully just &quot;for now&quot;?) unless/until we can build it again. Andwhen we do that, we should probably get it to the point of validatingrobust operation on all combinations of memory configurations beforemerging. (That implies a big experiment branch rather than a bunch ofeager PRs in-tree, but so it goes.) I still believe it is possible tobuild this (and I have ideas on how to do it!) but not right now.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Tue, 31 Mar 2026 04:36:33 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>0889323a - cranelift-codegen: rename most uses of std to core and alloc (#12237)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#0889323a</link>
        <description>cranelift-codegen: rename most uses of std to core and alloc (#12237)* rename most std uses to core and alloc* cargo fmt

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Sat, 03 Jan 2026 00:54:48 +0000</pubDate>
        <dc:creator>SSD &lt;96286755+the-ssd@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>2a2e8f62 - Couple cleanups to the flags/settings handling in Cranelift (#11744)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#2a2e8f62</link>
        <description>Couple cleanups to the flags/settings handling in Cranelift (#11744)* Remove unused shared flags* Get rid of predicate settingsThey were important in the old backend framework, but with the newbackend framework if we need a combination of multiple settings, thatcan just be done as a regular extractor doing &amp;&amp;. This simplifies thesettings implementation.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Wed, 01 Oct 2025 14:17:11 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>0854775b - Couple of optimizations to the Cranelift incremental cache (#11186)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#0854775b</link>
        <description>Couple of optimizations to the Cranelift incremental cache (#11186)* Fix a couple of comments* Remove flags.predicate_view()It is a remenant of the old backend framework.* Avoid string conversions for hashing the TargetIsa* Remove func_body_lenIt is identical to buffer.data.len()* Introduce IsaFlagsHashKey

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Tue, 08 Jul 2025 16:11:24 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.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/codegen/src/settings.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/codegen/src/settings.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>2af0a1f7 - Introduce log2_min_function_alignment flag (#10391)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#2af0a1f7</link>
        <description>Introduce log2_min_function_alignment flag (#10391)* Remove function_alignment handling from cranelift-object and cranelift-jitIt is already handled by MachBuffer. The symbol_alignment could also beremoved as no current backend has a symbol alignment bigger than thefunction alignment, but keeping it around is a bit safer when newbackends are introduced.* Introduce log2_min_function_alignment flagThis is required for cg_clif to implement -Zmin-function-alignment.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Thu, 13 Mar 2025 22:55:43 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>de1ad347 - Enable `impl-trait-overcaptures` 2024 transition lint (#9965)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#de1ad347</link>
        <description>Enable `impl-trait-overcaptures` 2024 transition lint (#9965)* Enable `impl-trait-overcaptures` 2024 transition lintThis lint detects cases where returning `impl Trait` will workdifferently in 2024 than in the current 2021 edition. Ambiguities areresolved with `use&lt;..&gt;` syntax stabilized in Rust 1.82.0 to mean thesame thing in both editions.* Fix some more `impl Trait` returns* Tighten bounds on settings `iter`* Fix build on 1.82.0* Fix another capture on MSRV

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Thu, 09 Jan 2025 23:13:22 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>1e3e5fc1 - Cranelift: add option to use new single-pass register allocator. (#9611)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#1e3e5fc1</link>
        <description>Cranelift: add option to use new single-pass register allocator. (#9611)* Cranelift: add option to use new single-pass register allocator.In bytecodealliance/regalloc2#181, @d-sonuga added a fast single-passalgorithm option to regalloc2, in addition to its existing backtrackingallocator. This produces code much more quickly, at the expense of codequality. Sometimes this tradeoff is desirable (e.g. when performing adebug build in a fast-iteration development situation, or in an initialJIT tier).This PR adds a Cranelift option to select the RA2 algorithm, plumbs itthrough to a Wasmtime option, and adds the option to Wasmtime fuzzing aswell.An initial compile-time measurement in Wasmtime: `spidermonkey.wasm`builds in 1.383s with backtracking (existing algorithm), and 1.065s withsingle-pass. The resulting binary runs a simple Fibonacci benchmark in2.060s with backtracking vs. 3.455s with single-pass.Hence, the single-pass algorithm yields a 23% compile-time reduction, atthe cost of a 67% runtime increase.* cargo-vet audit for allocator-api2 0.2.18 -&gt; 0.2.20.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Fri, 15 Nov 2024 17:58:31 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>af968461 - Gate support for implicit return area pointers behind an option (#9511)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#af968461</link>
        <description>Gate support for implicit return area pointers behind an option (#9511)* Remove couple of unused isle helpers* Gate support for implicit return area pointers behind an optionIt implements an incorrect ABI and may be removed in the future due tocomplexity reasons. By requiring to enable an option to use it, itbecomes harder to accidentally hit the ABI issue and allows a moredeprecation and eventual removal.* Fix review comments* Enable enable_multi_ret_implicit_sret for s390x tests that use i128* Enable enable_multi_ret_implicit_sret for riscv tests that use vector types* Enable enable_multi_ret_implicit_sret for more riscv tests* Enable enable_multi_ret_implicit_sret for windows tests that use i128

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Sun, 27 Oct 2024 18:05:54 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>d6713c50 - Update nightly in CI to latest (#9195)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#d6713c50</link>
        <description>Update nightly in CI to latest (#9195)Additionally address some new warnings that are cropping up throughoutthe codebase.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Tue, 03 Sep 2024 17:31:50 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>dbc11c30 - Cranelift: add stack_switch CLIF instruction (#9078)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#dbc11c30</link>
        <description>Cranelift: add stack_switch CLIF instruction (#9078)* stack_switch instruction* Update cranelift/codegen/src/isa/x64/pcc.rsCo-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;* cargo fmt* only lower on linux* give stack_switch the call() side effect* add function in filetest doing switching only* Extend documentation of new instruction* better comments on how we handle the payloads* Revert &quot;only lower on linux&quot;This reverts commit 2af10f944186629de1615aa0ed999b7f49d13132.* Add StackSwitchModel, use to compile stack_switch* turn stack_switch_model into partial constructor---------Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Wed, 21 Aug 2024 21:37:05 +0000</pubDate>
        <dc:creator>Frank Emrich &lt;git@emrich.io&gt;</dc:creator>
    </item>
<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/settings.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/settings.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>d53d0788 - cranelift: Simplify checking whether probestack is needed (#8376)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#d53d0788</link>
        <description>cranelift: Simplify checking whether probestack is needed (#8376)`Callee::probestack_min_frame` was always set to the guard-page size.That is the same as the `guard_size` local in `gen_prologue`, which wasalso the only place which used `probestack_min_frame`. So don&apos;t evenbother storing it, just compute it from the flags as needed.Also, remove the long-obsolete `probestack_func_adjusts_sp` setting,which hasn&apos;t been used since at least 2021. We may actually want to dosomething like what that setting described, but even if we do, it shouldbe a choice the backend makes rather than a global setting.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Tue, 16 Apr 2024 01:32:43 +0000</pubDate>
        <dc:creator>Jamey Sharp &lt;jsharp@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>d520bea5 - Use `&lt;[_]&gt;::join` instead of manual implementation (#8076)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#d520bea5</link>
        <description>Use `&lt;[_]&gt;::join` instead of manual implementation (#8076)Removes an old TODO comment.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Mon, 11 Mar 2024 14:13:26 +0000</pubDate>
        <dc:creator>DaniPopes &lt;57450786+DaniPopes@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>f466aa26 - Skeleton and initial support for proof-carrying code. (#7165)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#f466aa26</link>
        <description>Skeleton and initial support for proof-carrying code. (#7165)* WIP veriwasm 2.0Co-Authored-By: Chris Fallin &lt;cfallin@fastly.com&gt;* PCC: successfully parse some simple facts.Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;* PCC: plumb facts through VCode and add framework on LowerBackend to check them.Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;* PCC: code is carrying some proofs! Very simple test-case.Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;* PCC: add a `safe` flag for checked memory accesses.* PCC: add pretty-printing of facts to CLIF output.* PCC: misc. cleanups.* PCC: lots of cleanup.* Post-rebase fixups and some misc. fixes.* Add serde traits to facts.* PCC: add succeed and fail tests.* Review feedback: rename `safe` memflag to `checked`.* Review feedback.---------Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Fri, 06 Oct 2023 22:31:23 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
<item>
        <title>b25fe4b4 - cranelift: Remove the `enable_simd` shared setting (#6631)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#b25fe4b4</link>
        <description>cranelift: Remove the `enable_simd` shared setting (#6631)This commit removes a setting for Cranelift which I&apos;ve found a bitconfusing historically and I think is no longer necessary. The settingis currently documented as enabling SIMD instructions, but that onlysort of works for the x64 backend and none of the other backends look atit. Historically this was used to flag to Cranelift that a higher x64baseline feature set is required for codegen but as of #6625 that&apos;s nolonger necessary.Otherwise it seems more Cranelift-like nowadays to say that vectorinstructions generate SIMD instructions where non-vector instructionsprobably don&apos;t, but may still depending on activated CPU features. Inthat sense I&apos;m not sure if a dedicated `enable_simd` setting is stillmotivated, so this PR removes it.This renames some features in the x86 backend such as `use_avx_simd` to`use_avx` since the `_simd` part is no longer part of the computationnow that `enable_simd` is gone.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Thu, 22 Jun 2023 22:13:21 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>49dd8fd7 - aarch64: Fix Ldr19 relocations being unresolvable  (#6384)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#49dd8fd7</link>
        <description>aarch64: Fix Ldr19 relocations being unresolvable  (#6384)* Add a cranelift setting for padding between basic blocksVarious relocations, jumps, and such require special handling in`MachBuffer` with respect to islands to ensure that everything getsemitted correctly. This commit adds a setting to synthetically insertpadding at the end of every basic block to help stress this logic withmore minimal test cases. The setting is disabled by default but issomething that we should be able to turn on during fuzzing, for example.* aarch64: Fix out-of-range `Ldr19` relocationsThis commit fixes a bug in the AArch64 backend, and possibly others,where constants were unconditionally forced to be at the end of thefunction when they sometimes couldn&apos;t be. For example the `Ldr19`relocation has a 512k range meaning that if an instruction near thebeginning of a function accesses a constant at the end of a function andthe function is &gt;1M, then the relocation cannot be resolved. This is allhandled internally with `MachBuffer`&apos;s handling of islands but theproblem with constants is that the labels (and the constant values)weren&apos;t defined until the end of the function.The first attempt at fixing this was to move the calls to`defer_constant` to the beginning of emission. This would enable theconstants to get deferred as necessary. This was problematic, however,because it only solved the forwards case (aka your constant was forcedto the end of the function which is too far away). The backwards case,aka your constant is way too far behind you, was a new problem thatarose.To fix all of these issues constants are now handled differently insideof the `MachBuffer`. Previously constants were all pre-assigned alabel-per-constant and all references to the constant would use thatsingle label. Instead a new heuristic has been added where constantsrecord their size/alignment at the start of emission and labels arelazily deferred. When a label for a constant is requested then a labelis lazily allocated or a previously-allocated label for this constant isreturned. When an island is emitted then all emitted constants gettheir labels cleared. This intends to balance the previous functionalityof multiple uses of a constant only emit the constant once with fixingthis issue with simplicity as well. This means that constants may getemitted multiple times, since each reference to a constant after anisland is generated will be guaranteed to generate a new label, even ifit&apos;s in-range to access. This can perhaps be fixed in the future with amore clever API where the `LabelUse` is passed into the function whichconverts a constant to a label, but that&apos;s left as a refactoring for afuture date.This commit also moves an `alignment: u32` field into the`MachBufferFinalized` itself since that&apos;s now a function of whateverconstants actually got emitted. Additionally note that constantemission in the middle of a function doesn&apos;t actually emit anything,instead recording markers of where constants need to go. Then when abuffer is finalized the constants are passed in to get access to thedata which fills in everything as it&apos;s referenced.* Fuzz the `bb_padding_log2` settingThis commit hooks up the previously-added setting to Cranelift toWasmtime&apos;s fuzzing infrastructure. This will automatically configure thesetting based on the fuzz input to add a bit of &quot;chaos&quot; to the emittedcode. This should hopefully help expose the issue fixed previously viafuzzing which otherwise won&apos;t generate massive functions.* Realign back to an instruction boundaryOtherwise misaligned instructions were getting emitted and trippingvarious asserts.* Fix riscv64 testing* Rename codegen setting to bb_padding_log2_minus_oneAllow for inserting one byte of padding.* Doc updates* Thread through shared flags differentlyDon&apos;t use `EmitInfo`, instead pass in to vcode emission* Fix s390x tests* Combine island calculations during vcode emissionFixes an off-by-just-a-few error if the two island checks are doneseparately after a basic block.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Tue, 16 May 2023 15:55:53 +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/codegen/src/settings.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/codegen/src/settings.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>5ae85752 - x64: Take SIGFPE signals for divide traps (#6026)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#5ae85752</link>
        <description>x64: Take SIGFPE signals for divide traps (#6026)* x64: Take SIGFPE signals for divide trapsPrior to this commit Wasmtime would configure `avoid_div_traps=true`unconditionally for Cranelift. This, for the division-basedinstructions, would change emitted code to explicitly trap on trapconditions instead of letting the `div` x86 instruction trap.There&apos;s no specific reason for Wasmtime, however, to specifically avoidtraps in the `div` instruction. This means that the extra generatedbranches on x86 aren&apos;t necessary since the `div` and `idiv` instructionsalready trap for similar conditions as wasm requires.This commit instead disables the `avoid_div_traps` setting forWasmtime&apos;s usage of Cranelift. Subsequently the codegen rules wereupdated slightly:* When `avoid_div_traps=true`, traps are no longer emitted for `div`  instructions.* The `udiv`/`urem` instructions now list their trap as divide-by-zero  instead of integer overflow.* The lowering for `sdiv` was updated to still explicitly check for zero  but the integer overflow case is deferred to the instruction itself.* The lowering of `srem` no longer checks for zero and the listed trap  for the `div` instruction is a divide-by-zero.This means that the codegen for `udiv` and `urem` no longer have anybranches. The codegen for `sdiv` removes one branch but keeps thezero-check to differentiate the two kinds of traps. The codegen for`srem` removes one branch but keeps the -1 check since the semantics of`srem` mismatch with the semantics of `idiv` with a -1 divisor(specifically for INT_MIN).This is unlikely to have really all that much of a speedup but wassomething I noticed during #6008 which seemed like it&apos;d be good to cleanup. Plus Wasmtime&apos;s signal handling was already set up to catch`SIGFPE`, it was just never firing.* Remove the `avoid_div_traps` cranelift settingWith no known users currently removing this should be possible and helpssimplify the x64 backend.* x64: GC more support for avoid_div_trapsRemove the `validate_sdiv_divisor*` pseudo-instructions and clean upsome of the ISLE rules now that `div` is allowed to itself trapunconditionally.* x64: Store div trap code in instruction itself* Keep divisors in registers, not in memoryDon&apos;t accidentally fold multiple traps together* Handle EXC_ARITHMETIC on macos* Update emit tests* Update winch and tests

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Thu, 16 Mar 2023 00:18:45 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>013b35ff - winch: Refactoring wasmtime compiler integration pieces to share more between Cranelift and Winch (#5944)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/settings.rs#013b35ff</link>
        <description>winch: Refactoring wasmtime compiler integration pieces to share more between Cranelift and Winch (#5944)* Enable the native target by default in winchMatch cranelift-codegen&apos;s build script where if no architecture isexplicitly enabled then the host architecture is implicitly enabled.* Refactor Cranelift&apos;s ISA builder to share more with WinchThis commit refactors the `Builder` type to have a type parameterrepresenting the finished ISA with Cranelift and Winch having their owntypedefs for `Builder` to represent their own builders. The intention isto use this shared functionality to produce more shared code between thetwo codegen backends.* Moving compiler shared components to a separate crate* Restore native flag inference in compiler buildingThis fixes an oversight from the previous commits to use`cranelift-native` to infer flags for the native host when using defaultsettings with Wasmtime.* Move `Compiler::page_size_align` into wasmtime-environThe `cranelift-codegen` crate doesn&apos;t need this and winch wants the sameimplementation, so shuffle it around so everyone has access to it.* Fill out `Compiler::{flags, isa_flags}` for WinchThese are easy enough to plumb through with some shared code forWasmtime.* Plumb the `is_branch_protection_enabled` flag for WinchJust forwarding an isa-specific setting accessor.* Moving executable creation to shared compiler crate* Adding builder back in and removing from shared crate* Refactoring the shared pieces for the `CompilerBuilder`I decided to move a couple things around from Alex&apos;s initial changes.Instead of having the shared builder do everything, I went back tohaving each compiler have a distinct builder implementation. Irefactored most of the flag setting logic into a single shared location,so we can still reduce the amount of code duplication.With them being separate, we don&apos;t need to maintain things like`LinkOpts` which Winch doesn&apos;t currently use. We also have an avenue toerror when certain flags are sent to Winch if we don&apos;t support them. I&apos;mhoping this will make things more maintainable as we build out Winch.I&apos;m still unsure about keeping everything shared in a single crate(`cranelift_shared`). It&apos;s starting to feel like this crate is doing toomuch, which makes it difficult to name. There does seem to be a need fortwo distinct abstraction: creating the final executable and the handlingof shared/ISA flags when building the compiler. I could make them intotwo separate crates, but there doesn&apos;t seem to be enough there yet tojustify it.* Documentation updates, and renaming the finish method* Adding back in a default temporarily to pass tests, and removing some unused imports* Fixing winch tests with wrong method name* Removing unused imports from codegen shared crate* Apply documentation formatting updatesCo-authored-by: Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;* Adding back in cranelift_native flag inferring* Adding new shared crate to publish list* Adding write feature to pass cargo check---------Co-authored-by: Alex Crichton &lt;alex@alexcrichton.com&gt;Co-authored-by: Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/settings.rs</description>
        <pubDate>Wed, 08 Mar 2023 15:07:13 +0000</pubDate>
        <dc:creator>Kevin Rizzo &lt;32458485+KevinRizzoTO@users.noreply.github.com&gt;</dc:creator>
    </item>
</channel>
</rss>
