What's Changed
* fix[codegen]: fix double evals in sqrt, slice, blueprint by cyberthirst in https://github.com/vyperlang/vyper/pull/3976
* fix[codegen]: fix double eval in dynarray append/pop by charles-cooper in https://github.com/vyperlang/vyper/pull/4030
* feat[venom]: optimize mem2var and store/variable elimination pass sequences by harkal in https://github.com/vyperlang/vyper/pull/4032
* fix[venom]: fix some sccp evaluations by charles-cooper in https://github.com/vyperlang/vyper/pull/4028
* feat[venom]: "pickaxe" stack scheduler optimization by charles-cooper in https://github.com/vyperlang/vyper/pull/3951
* fix[codegen]: fix some hardcoded references to `STORAGE` location by cyberthirst in https://github.com/vyperlang/vyper/pull/4015
* feat[venom]: remove redundant store elimination pass by charles-cooper in https://github.com/vyperlang/vyper/pull/4036
* fix[venom]: remove some dead code in `venom_to_assembly` by charles-cooper in https://github.com/vyperlang/vyper/pull/4042
* fix[codegen]: fix double eval of start in range expr by cyberthirst in https://github.com/vyperlang/vyper/pull/4033
* chore[docs]: `implements` does not check event declarations by pcaversaccio in https://github.com/vyperlang/vyper/pull/4052
* feat[lang]!: make internal decorator optional by charles-cooper in https://github.com/vyperlang/vyper/pull/4040
* fix[codegen]: fix `make_setter` overlap with internal calls by charles-cooper in https://github.com/vyperlang/vyper/pull/4037
* feat[venom]: improve unused variable removal pass by harkal in https://github.com/vyperlang/vyper/pull/4055
* refactor[tool]: refactor storage layout export by charles-cooper in https://github.com/vyperlang/vyper/pull/3789
* feat[venom]: optimize branching by harkal in https://github.com/vyperlang/vyper/pull/4049
* feat[ci]: add codecov configuration by charles-cooper in https://github.com/vyperlang/vyper/pull/4057
* feat[venom]: avoid last `swap` for commutative ops by harkal in https://github.com/vyperlang/vyper/pull/4048
* fix[tool]: compile multiple files by charles-cooper in https://github.com/vyperlang/vyper/pull/4053
* chore[docs]: add docs for v0.4.0 features by charles-cooper in https://github.com/vyperlang/vyper/pull/3947
* fix[codegen]: fix `_abi_decode` buffer overflow by cyberthirst in https://github.com/vyperlang/vyper/pull/3925
* fix[test]: fix call graph stability fuzzer by charles-cooper in https://github.com/vyperlang/vyper/pull/4064
* fix[venom]: remove liveness requests by harkal in https://github.com/vyperlang/vyper/pull/4058
* feat[venom]: add algebraic optimization pass by harkal in https://github.com/vyperlang/vyper/pull/4054
* fix[ir]: fix a latent bug in `sha3_64` codegen by charles-cooper in https://github.com/vyperlang/vyper/pull/4063
* fix[codegen]: fix `make_setter` overlap in `dynarray_append` by charles-cooper in https://github.com/vyperlang/vyper/pull/4059
* fix[venom]: fix list of volatile instructions by charles-cooper in https://github.com/vyperlang/vyper/pull/4065
**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.4.0rc5...v0.4.0rc6