[mono][interp] Update var definition when inserting new instructions during cprop by BrzVlad · Pull Request #116179 · dotnet/runtime
AI review requested due to automatic review settings
May 31, 2025 16:45BrzVlad added a commit to BrzVlad/runtime that referenced this pull request
Jun 9, 2025…during cprop (dotnet#116179) The definition was not updated, leading to invalid optimizations later on.
jozkee pushed a commit that referenced this pull request
Jun 10, 2025* [mono][interp] Add possibility to configure interp options from env var * [mono][interp] Update var definition when inserting new instructions during cprop (#116179) The definition was not updated, leading to invalid optimizations later on. * [mono][interp] Fix broken code attempting to reapply superinstruction optimization (#116069) For each instruction in a basic block we check for patterns. In a certain case, once we replaced the instruction with a new one, we were attempting to do a loop reiteration by setting `ins = ins->prev` so after the loop reincrements with `ins = ins->next` we check super instruction patterns again for the current instruction. This is broken if `ins` was the first instruction in a basic block, aka `ins->prev` is NULL. This used to be impossible before SSA optimizations, since super instruction pass was applying optimizations in a single basic block only.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters