Ran
|
Jobs
1
|
Files
89
|
Run time
3s
|
Badge
Embed ▾
README BADGES
|
push
github
Revert to trival pow() optimizations to prevent inaccuracies. (cherry-picked from commit 96d6d5032) This patch fixes different misbehaviours between JIT-compiled code and the interpreter for power operator in the following ways: * Drop folding optimizations for base ^ n => base * base ..., as far as pow(base, n) isn't interchangeable with just multiplicity of numbers and depends on the <math.h> implementation. * Since the internal power function is inaccurate for very big or small powers, it is dropped, and `pow()` from the standard library is used instead. To save consistency between JIT behaviour and the VM, narrowing optimization is dropped, and only trivial folding optimizations are used. Also, `math_extern2` version with two parameters is dropped, since it's no longer used. Also, this fixes failures of the [220/502] lib/string/format/num.lua test [1] from the LuaJIT-test suite. [1]: https://www.exploringbinary.com/incorrect-floating-point-to-decimal-conversions/ 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>
5322 of 5963 branches covered (0.0%)
Branch coverage included in aggregate %.
11 of 11 new or added lines in 5 files covered. (100.0%)
20443 of 23278 relevant lines covered (87.82%)
1292502.03 hits per line
Lines | Coverage | ∆ | File |
---|---|---|---|
1 |
75.77 |
1.54% | src/lj_opt_fold.c |
2 |
89.14 |
-1.64% | src/lj_ffrecord.c |
Lines | Coverage | ∆ | File |
---|---|---|---|
1 |
99.22 |
0.01% | src/lj_func.c |
1 |
94.74 |
2.43% | src/lj_vmmath.c |
3 |
61.83 |
0.0% | src/lj_clib.c |
3 |
98.67 |
0.0% | src/lj_lex.c |
4 |
88.89 |
0.04% | src/lj_emit_x86.h |
4 |
94.74 |
0.0% | src/lj_str.c |
4 |
89.67 |
0.0% | src/lj_symtab.c |
4 |
98.73 |
0.0% | src/lj_tab.c |
5 |
95.55 |
0.0% | src/lj_opt_loop.c |
7 |
95.93 |
0.0% | src/lib_io.c |
7 |
98.84 |
-0.06% | src/lj_gc.c |
7 |
99.56 |
-0.0% | src/lj_parse.c |
8 |
95.69 |
0.0% | src/lj_state.c |
9 |
89.14 |
-1.64% | src/lj_ffrecord.c |
10 |
97.11 |
0.01% | src/lj_snap.c |
10 |
84.89 |
2.67% | src/lj_sysprof.c |
10 |
76.62 |
0.0% | src/lj_wbuf.c |
12 |
97.77 |
0.0% | src/lj_trace.c |
13 |
88.17 |
0.0% | src/lj_memprof.c |
15 |
76.47 |
0.13% | src/lj_ccallback.c |
15 |
83.61 |
0.0% | src/lj_ctype.c |
16 |
92.76 |
0.0% | src/lj_ir.c |
17 |
89.45 |
0.0% | src/lj_debug.c |
17 |
89.09 |
0.0% | src/lj_err.c |
17 |
93.87 |
0.0% | src/lj_opt_mem.c |
21 |
79.91 |
0.09% | src/lj_cdata.c |
24 |
70.38 |
0.0% | src/lj_carith.c |
25 |
13.79 |
0.0% | src/lj_utils_leb128.c |
28 |
78.15 |
-0.36% | src/lj_ccall.c |
32 |
96.0 |
2.15% | src/lj_asm.c |
68 |
95.62 |
-0.11% | src/lj_record.c |
85 |
64.75 |
0.0% | src/lj_cconv.c |
97 |
92.68 |
1.16% | src/lj_asm_x86.h |
146 |
72.05 |
-0.17% | src/lj_crecord.c |
182 |
73.0 |
-0.32% | src/lj_api.c |
194 |
75.77 |
1.54% | src/lj_opt_fold.c |
224 |
61.83 |
0.0% | src/lj_cparse.c |
ID | Job ID | Ran | Files | Coverage | |
---|---|---|---|---|---|
1 | 5973601545.1 | 89 |
88.11 |
GitHub Action Run |
Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
---|