What's Changed
* refactor[venom]: remove unused method in `make_ssa.py` by harkal in https://github.com/vyperlang/vyper/pull/4012
* fix[venom]: fix return opcode handling in mem2var by harkal in https://github.com/vyperlang/vyper/pull/4011
* feat[tool]: add source map for constructors by tserg in https://github.com/vyperlang/vyper/pull/4008
* fix[lang]: recursion in `uses` analysis for nonreentrant functions by charles-cooper in https://github.com/vyperlang/vyper/pull/3971
* fix[lang]: typecheck hashmap indexes with folding by DanielSchiavini in https://github.com/vyperlang/vyper/pull/4007
* fix[venom]: fix `cfg` output format by harkal in https://github.com/vyperlang/vyper/pull/4010
* fix[codegen]: fix `raw_log()` when topics are non-literals by cyberthirst in https://github.com/vyperlang/vyper/pull/3977
* chore[venom]: fix output formatting of data segment in `IRContext` by harkal in https://github.com/vyperlang/vyper/pull/4016
* feat[venom]: add store elimination pass by harkal in https://github.com/vyperlang/vyper/pull/4021
* fix[tool]: fix cross-compilation issues, add windows CI by charles-cooper in https://github.com/vyperlang/vyper/pull/4014
* chore[test]: add macos to test matrix by DanielSchiavini in https://github.com/vyperlang/vyper/pull/4025
**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.4.0rc3...v0.4.0rc4