Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [PATCH luajit v2] Don't compile math.modf() anymore.
@ 2022-08-18 21:20 Maxim Kokryashkin via Tarantool-patches
  2022-12-12  9:42 ` Igor Munkin via Tarantool-patches
  0 siblings, 1 reply; 2+ messages in thread
From: Maxim Kokryashkin via Tarantool-patches @ 2022-08-18 21:20 UTC (permalink / raw)
  To: tarantool-patches, imun, skaplun

From: Mike Pall <mike>

This commit disables compilation for the `math.modf` function since it's
rarely used and compiling it in a performant enough way would be
difficult.

Part of tarantool/tarantool#7230
---

There are no issues with correctenss of compilation
of math.modf whatsoever. There are no known issues with it, and all of
the possible edge cases are handled well both with active
and inactivve JIT. It's safe to assume that the `properly compiling`
in the original commit message refers to performance rather than
correctness.

PR: https://github.com/tarantool/tarantool/pull/7586
Branch: https://github.com/tarantool/luajit/tree/fckxorg/gh-7230-math-modf

 src/lib_math.c    |  2 +-
 src/lj_ffrecord.c | 16 ----------------
 2 files changed, 1 insertion(+), 17 deletions(-)

diff --git a/src/lib_math.c b/src/lib_math.c
index ef9dda2d..4e6d2458 100644
--- a/src/lib_math.c
+++ b/src/lib_math.c
@@ -45,7 +45,7 @@ LJLIB_ASM_(math_sinh)		LJLIB_REC(math_htrig IRCALL_sinh)
 LJLIB_ASM_(math_cosh)		LJLIB_REC(math_htrig IRCALL_cosh)
 LJLIB_ASM_(math_tanh)		LJLIB_REC(math_htrig IRCALL_tanh)
 LJLIB_ASM_(math_frexp)
-LJLIB_ASM_(math_modf)		LJLIB_REC(.)
+LJLIB_ASM_(math_modf)

 LJLIB_ASM(math_log)		LJLIB_REC(math_log)
 {
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c
index be890a93..ac9c9ba1 100644
--- a/src/lj_ffrecord.c
+++ b/src/lj_ffrecord.c
@@ -601,22 +601,6 @@ static void LJ_FASTCALL recff_math_htrig(jit_State *J, RecordFFData *rd)
   J->base[0] = emitir(IRTN(IR_CALLN), tr, rd->data);
 }

-static void LJ_FASTCALL recff_math_modf(jit_State *J, RecordFFData *rd)
-{
-  TRef tr = J->base[0];
-  if (tref_isinteger(tr)) {
-    J->base[0] = tr;
-    J->base[1] = lj_ir_kint(J, 0);
-  } else {
-    TRef trt;
-    tr = lj_ir_tonum(J, tr);
-    trt = emitir(IRTN(IR_FPMATH), tr, IRFPM_TRUNC);
-    J->base[0] = trt;
-    J->base[1] = emitir(IRTN(IR_SUB), tr, trt);
-  }
-  rd->nres = 2;
-}
-
 static void LJ_FASTCALL recff_math_pow(jit_State *J, RecordFFData *rd)
 {
   J->base[0] = lj_opt_narrow_pow(J, J->base[0], J->base[1],
--
2.36.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-12-12  9:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-18 21:20 [Tarantool-patches] [PATCH luajit v2] Don't compile math.modf() anymore Maxim Kokryashkin via Tarantool-patches
2022-12-12  9:42 ` Igor Munkin via Tarantool-patches

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox