From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id E6F53E42CFC; Tue, 14 Jan 2025 17:15:52 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org E6F53E42CFC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1736864153; bh=vi6GA4WrC3gjS7FxkeprCl4BfE358/VGMeVRyP1bVCw=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=LAd/l8ZvXM9FpplGJnBQwLEgtls8rTjjP1kflkCkNo/SHCmvMsbvtfXpWXpgAGY2A hiy8pG4QwlW4+XV7rJEv1ggS25uYzhK4+rG2zro4mO2aLE79C0sin6yyNJCEGv54LI NIiipQtD9hf+RU5goGDG3Xl4+EIPO2fCjqYlNe2A= Received: from send194.i.mail.ru (send194.i.mail.ru [95.163.59.33]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id ECEE8E42CFC for ; Tue, 14 Jan 2025 17:15:51 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org ECEE8E42CFC Received: by exim-smtp-6758d5575c-2kxjw with esmtpa (envelope-from ) id 1tXhhv-00000000Nfb-0gcQ; Tue, 14 Jan 2025 17:15:51 +0300 Content-Type: multipart/alternative; boundary="------------8UOQhIhsrSBFpdypNFP4b6Ls" Message-ID: Date: Tue, 14 Jan 2025 17:15:50 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Sergey Kaplun Cc: tarantool-patches@dev.tarantool.org References: <21c87151ad7c919b12f90d8590697e190f6b5e0c.1736509260.git.skaplun@tarantool.org> In-Reply-To: <21c87151ad7c919b12f90d8590697e190f6b5e0c.1736509260.git.skaplun@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD97BF177E4F5EB85B8BF838AD0A3C79EE36ED687549B681F9500894C459B0CD1B9A2C3B20E7D532CD866FA44935DFD41245CD26E02DB49133AAEA645EAF6F4634B19B76541BFBA1C79 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7544B1CCE26E01C74EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637968EC5F77C2942FE8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8EEF24C4016893A99ABB11FBFAAB506FEEACB101BD0FCCA1DCC7F00164DA146DAFE8445B8C89999728AA50765F79006372A3B24BF85B2E607389733CBF5DBD5E9C8A9BA7A39EFB766F5D81C698A659EA7CC7F00164DA146DA9985D098DBDEAEC8744B801E316CB65FF6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA73AA81AA40904B5D9A18204E546F3947C4E7D9683544204AF6E0066C2D8992A164AD6D5ED66289B523666184CF4C3C14F6136E347CC761E07725E5C173C3A84C3B74263D4D5690889BA3038C0950A5D36B5C8C57E37DE458B330BD67F2E7D9AF16D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE7BEE702378D8A34C7731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A55D0AA576939598FE5002B1117B3ED696565CDDE0A10631D4B74D9144D44E4FCF823CB91A9FED034534781492E4B8EEAD5DF1C2DF01CE7211BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0ADBF74143AD284FC7177DD89D51EBB7742424CF958EAFF5D571004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D3498910055B812BD9C0F434A1F558F4299312CA5311EB66BFC9E48EA0E48AA610FCB0CC428E8366A621D7E09C32AA3244CEF78CBCEB8A4B8B177DD89D51EBB7742D08F1CF72ECB5D9AEA455F16B58544A2E30DDF7C44BCB90DA5AE236DF995FB59978A700BF655EAEEED6A17656DB59BCAD427812AF56FC65B X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2bioj7YQzuqfQVvwM1gcwQ3kO1Q== X-Mailru-Sender: 520A125C2F17F0B1E52FEF5D219D6140A2C3B20E7D532CD866FA44935DFD41240D2C23663CA729440152A3D17938EB451EB5A0BCEC6A560B3DDE9B364B0DF289BE2DA36745F2EEB5CEBA01FB949A1F1EEAB4BC95F72C04283CDA0F3B3F5B9367 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH luajit 4/4] Fix last commit. X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Sergey Bronnikov via Tarantool-patches Reply-To: Sergey Bronnikov Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" This is a multi-part message in MIME format. --------------8UOQhIhsrSBFpdypNFP4b6Ls Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, Sergey! thanks for the patch! LGTM On 10.01.2025 16:07, Sergey Kaplun wrote: > From: Mike Pall > > (cherry picked from commit 43d0a19158ceabaa51b0462c1ebc97612b420a2e) > > The previous commit accidentally removes the check that fusing > optimization isn't performing across the call to the `table.clear()`. > This commit fixes the behaviour by adding the corresponding check that > depends on the first bit of `check` masks in the `noconflict()` routine. > > Sergey Kaplun: > * added the description for the problem > > Part of tarantool/tarantool#10709 > --- > src/lj_asm_x86.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h > index d77087d6..a96bc2e7 100644 > --- a/src/lj_asm_x86.h > +++ b/src/lj_asm_x86.h > @@ -118,7 +118,7 @@ static int noconflict(ASMState *as, IRRef ref, IROp conflict, int check) > while (--i > ref) { > if (ir[i].o == conflict) > return 0; /* Conflict found. */ > - else if ((check & 1) && ir[i].o == IR_NEWREF) > + else if ((check & 1) && (ir[i].o == IR_NEWREF || ir[i].o == IR_CALLS)) > return 0; > else if ((check & 2) && (ir[i].op1 == ref || ir[i].op2 == ref)) > return 0; --------------8UOQhIhsrSBFpdypNFP4b6Ls Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

Hi, Sergey!

thanks for the patch! LGTM

On 10.01.2025 16:07, Sergey Kaplun wrote:
From: Mike Pall <mike>

(cherry picked from commit 43d0a19158ceabaa51b0462c1ebc97612b420a2e)

The previous commit accidentally removes the check that fusing
optimization isn't performing across the call to the `table.clear()`.
This commit fixes the behaviour by adding the corresponding check that
depends on the first bit of `check` masks in the `noconflict()` routine.

Sergey Kaplun:
* added the description for the problem

Part of tarantool/tarantool#10709
---
 src/lj_asm_x86.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h
index d77087d6..a96bc2e7 100644
--- a/src/lj_asm_x86.h
+++ b/src/lj_asm_x86.h
@@ -118,7 +118,7 @@ static int noconflict(ASMState *as, IRRef ref, IROp conflict, int check)
   while (--i > ref) {
     if (ir[i].o == conflict)
       return 0;  /* Conflict found. */
-    else if ((check & 1) && ir[i].o == IR_NEWREF)
+    else if ((check & 1) && (ir[i].o == IR_NEWREF || ir[i].o == IR_CALLS))
       return 0;
     else if ((check & 2) && (ir[i].op1 == ref || ir[i].op2 == ref))
       return 0;
--------------8UOQhIhsrSBFpdypNFP4b6Ls--