push
github
Fix TDUP load forwarding after table rehash. Reported by Sergey Kaplun. (cherry-picked from commit c7db8255e) After table rehashing number keys loaded via ALOAD may be placed in the hash part of the table. So, load forwarding analysis missed the corresponding stores like they never existed. In that case, either we faced an assertion failure in `fwd_ahload()` due to value types mismatch, or we faced an assertion failure in `rec_check_slots()` since the forwarded value by the JIT compiler isn't the same as it is in the interpreter. This patch adds a check that there is no `IR_NEWREF` after table creation, so it can't be rehashed. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#8825 Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Signed-off-by: Igor Munkin <imun@tarantool.org>
5332 of 5969 branches covered (0.0%)
Branch coverage included in aggregate %.
4 of 4 new or added lines in 1 file covered. (100.0%)
20456 of 23287 relevant lines covered (87.84%)
1285589.78 hits per line