What's Changed
- Optimize execution speed of
in_languagetests by @ironcev in #7635 - Optimize away zero-length MCP/MCPI instructions by @Dnreikronos in #7629
- Fix redundant ops by @xunilrj in #7636
- Implement chunk-based dynamic storage
StorageVecby @ironcev in #7649 - Fix swayfmt comment placement after multibyte comments by @JoshuaBatty in #7652
- IR tests snapshots by @xunilrj in #7654
- Improve
storage_benchmarkstooling by @ironcev in #7653 - Improve CSE pass by adding
get_local/global/config/storage_keyby @ironcev in #7655 - Refactor
InstOp::GetConfigfor consistency by @ironcev in #7656 - Fix
memcpyoptto allow multiple passes of optimisations by @xunilrj in #7657 - Optimize compilation speed and memory consumption (
DeclEngine) by @ironcev in #7659 - Parallelize runs of in-lang tests and shorten storage tests compilation by @ironcev in #7661
- Use
HasChangesto propagate information about in-place mutations by @ironcev in #7662 - Extend compiler metrics with
DeclEnginemetrics by @ironcev in #7664 - Remove cloning of parsed tree elements during type checking by @ironcev in #7667
- Refactor and tidy up
stdtests for execution speed and discoverability by @ironcev in #7669 - Extract all perf data from in-language tests run in parallel by @ironcev in #7670
- Fix
gix-validateadvisory (GHSA-p3hw-mv63-rf9w) by @ironcev in #7671 - fix modified in optimisation passes so they converge by @xunilrj in #7666
- make IR snapshot fail only at the end of all comparisons by @xunilrj in #7676
- Fix forc-fmt empty if-body + else collapsing onto one line by @Dnreikronos in #7628
- Optimize type casting by using
__transmuteinstead ofasmblocks by @ironcev in #7675 - Add comprehensive tests for
init_aggrinstruction and its lowering by @ironcev in #7677 - Removing verify-ir from the CLI by @xunilrj in #7672
- Add additional tests for
init_aggrinstruction and its lowering by @ironcev in #7678 - Optimize initialization of mostly zeroed aggregates by @vaivaswatha in #7542
- Optimize dynamic
stdtypes by @ironcev in #7683 - Optionally print IR metadata block by @ironcev in #7684
- Improve AddrDataId materialization by @xunilrj in #7685
- Fix SROA miscompilation issues by @ironcev in #7689
- Bump serde_with from 3.12.0 to 3.21.0 in /test/src/sdk-harness by @dependabot[bot] in #7687
- Fix
get_runtime_representationand const-eval ofEnumInstantiationby @ironcev in #7692 - Optimize hashing by implementing
is_hash_trivialby @ironcev in #7695 - Fix
SROAwhen loading in multiple blocks by @xunilrj in #7694 - Implement
__mem_repr_eqintrinsic by @ironcev in #7697 - Rollout
Block::is_entryby @ironcev in #7696 - Add missing IR passes to
PassManager::OPTIMIZATION_PASSESby @ironcev in #7698 - Bump to 0.72.0 by @ironcev in #7699
Breaking Changes
- The
__runtime_mem_idand__encoding_mem_idintrinsics are removed in favor of the new__mem_repr_eqintrinsics. For details, see #7697. - The
std::hash::Hashhas a new associated function,is_hash_trivial. For details, see #7695. - The
--verify-irCLI option is removed. IR verification is now always performed after every IR pass. For details, see #7672. - IR metadata block is not printed by default anymore. To print it, add
print-mdto--irCLI option. E.g.,--ir final print-md. For details, see #7684.
New Contributors
- @Dnreikronos made their first contribution in #7629
Full Changelog: v0.71.2...v0.72.0