On 1/26/21 9:44 AM, Stefan Weil wrote: > I was not talking about the TODO assertions. When I wrote TCI, I only enabled > and included code which was triggered by my testing - that's why I said the > productive code lines have 100 % test coverage. TODO assertions are not > productive code, but debug code which were made to detect new test cases. They > were successful, too, because they were triggered by some tests in `make > check-tcg`.
The TODO assertions are all bugs. Any *real* dead code detection should have been done in tcg/tci/tcg-target.c.inc. What's interpreted in tcg/tci.c should be exactly what is produced on the other side, and you are producing more than you are consuming. > It should pass now unless you get timeouts for some tests. Please tell me if > more TODO assertions are triggered by new tests. case INDEX_op_ld8s_i32: TODO(); break; Can be triggered by target/arm/translate-a64.c:1061: tcg_gen_ld8s_i64(tcg_dest, cpu_env, vect_off); target/arm/translate-a64.c:1090: tcg_gen_ld8s_i32(tcg_dest, cpu_env, vect_off); target/arm/translate.c:1210: tcg_gen_ld8s_i32(dest, cpu_env, off); target/s390x/translate_vx.c.inc:81: tcg_gen_ld8s_i64(dst, cpu_env, offs); target/s390x/translate_vx.c.inc:111: tcg_gen_ld8s_i32(dst, cpu_env, offs); case INDEX_op_ld16s_i32: TODO(); break; Can be triggered by target/arm/translate-a64.c:1064: tcg_gen_ld16s_i64(tcg_dest, cpu_env, vect_off); target/arm/translate-a64.c:1093: tcg_gen_ld16s_i32(tcg_dest, cpu_env, vect_off); target/arm/translate.c:1216: tcg_gen_ld16s_i32(dest, cpu_env, off); target/s390x/translate_vx.c.inc:84: tcg_gen_ld16s_i64(dst, cpu_env, offs); target/s390x/translate_vx.c.inc:114: tcg_gen_ld16s_i32(dst, cpu_env, offs); All of which are target vector instructions. I'm sure it would be trivial to whip up test cases for them, but I don't see that as my job. Please maintain this code properly or give it up. r~