push
github
Prevent CSE of a REF_BASE operand across IR_RETF. Reported by XmiliaH. (cherry-picked from commit e73916d81) The RETF IR has a side effect: it shifts base when returning to a lower frame, i.e., it affects `REF_BASE` IR (0000) (thus, we can say that this IR is violating SSA form). So any optimization of IRs with `REF_BASE` as an operand across RETF IR may lead to incorrect optimizations (see details in the test file). This patch adds rules to the folding engine to prevent CSE across `IR_RETF` for all possible IRs containing REF_BASE. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#9145
5381 of 5986 branches covered (0.0%)
Branch coverage included in aggregate %.
2 of 2 new or added lines in 1 file covered. (100.0%)
2 existing lines in 2 files now uncovered.20632 of 23355 relevant lines covered (88.34%)
2751248.6 hits per line