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 Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org>
5375 of 5986 branches covered (0.0%)
Branch coverage included in aggregate %.
2 of 2 new or added lines in 1 file covered. (100.0%)
8 existing lines in 2 files now uncovered.20619 of 23355 relevant lines covered (88.29%)
2746398.45 hits per line