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 D3119F1A9A6; Fri, 10 Jan 2025 16:09:22 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org D3119F1A9A6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1736514562; bh=JlnvRWvHpVn5YyR4a2Z+XLuDTJ9Or/DulAdc5z0iwHQ=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=FjNGNWwbj6eDRLqOZpTc/u81M6dltTxLAuyxLLNDq3IikBrkEpmsBgOZO1klqIVQj 7v74X+q7z1MU+5pN3JRUIWkO27DBQcSjbEyfynd9+NiW7qSQNpwYywTqSYl62JDywY xEe1NhfDgRPtPtFSOa9Ob3HzzhCHTJIB2KdFdsfs= Received: from send242.i.mail.ru (send242.i.mail.ru [95.163.59.81]) (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 CCEE5F1A9A6 for ; Fri, 10 Jan 2025 16:08:22 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org CCEE5F1A9A6 Received: by exim-smtp-bcf9586c5-mw6cv with esmtpa (envelope-from ) id 1tWEkQ-00000000Ued-0Udo; Fri, 10 Jan 2025 16:08:22 +0300 To: Sergey Bronnikov Date: Fri, 10 Jan 2025 16:07:45 +0300 Message-ID: X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD97C62A2C8925CC6479A30C035CF3FACB3B41F8762A6898136182A05F5380850408AC4DA928BC48D163DE06ABAFEAF6705A62290FC99AFF1DED3E5D342215B9A64955D7F540D105623 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7AC4684DF4EC4B256EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063788758EA7442DD2858638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8BADBFD9F547EBA0C3BDF672ABC45C8FEE052B019519AB731CC7F00164DA146DAFE8445B8C89999728AA50765F7900637CAEE156C82D3D7D9389733CBF5DBD5E9C8A9BA7A39EFB766F5D81C698A659EA7CC7F00164DA146DA9985D098DBDEAEC8BC0ADEB1C81BB362F6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA7E827F84554CEF5019E625A9149C048EE9ECD01F8117BC8BEE2021AF6380DFAD18AA50765F790063735872C767BF85DA227C277FBC8AE2E8B851EDB9C5A93305EEFF80C71ABB335746BA297DBC24807EABDAD6C7F3747799A X-C1DE0DAB: 0D63561A33F958A58B62E3E86072EB475002B1117B3ED6966A6DC80E4EC8D42C9E040399BDE4761E823CB91A9FED034534781492E4B8EEADA2D5570B22232E1EC79554A2A72441328621D336A7BC284946AD531847A6065A535571D14F44ED41 X-C8649E89: 1C3962B70DF3F0ADBF74143AD284FC7177DD89D51EBB7742424CF958EAFF5D571004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D34B7CBFF60649FF26615146769596F86749A1E7E28D4C92022B7F42508B20ED0DB96BFE54791929F2A1D7E09C32AA3244C93FC77C1C3D7D59777DD89D51EBB774273A956307CE80EC8EA455F16B58544A2557BDE0DD54B3590A5AE236DF995FB59829709634694AABAED6A17656DB59BCAD427812AF56FC65B X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojXhNIkWce4y1ACFhg4NDCLg== X-DA7885C5: 934F1FB58BB0C81CF255D290C0D534F9AC314B59925C35CC37F10D45F93DDD526F0971379B705A1B5B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F739381B31377CF4CA2194103B38909FC767CDFCB6B24D75F5A4E754A147E2191D857E49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH luajit 2/4] Improve 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 Kaplun via Tarantool-patches Reply-To: Sergey Kaplun Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" From: Mike Pall (cherry picked from commit 113a168b792cd367822ec04cdc2ef32facd28efa) The `noconflict()` function checks if there's no conflicting instruction between the current instruction and the given `ref` instruction. Also, it avoids fusing loads if there are multiple references of the given `ref`. The last check is performed in the presence of the `noload` parameter. Since the `noconflict()`, which is added in the previous patch, checks conflicts for the same `ref` as the call before, there is no need to perform these checks again, so the corresponding parameter is adjusted. 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 f47c460a..cba7ba80 100644 --- a/src/lj_asm_x86.h +++ b/src/lj_asm_x86.h @@ -465,7 +465,7 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow) } } else if (ir->o == IR_ALOAD || ir->o == IR_HLOAD || ir->o == IR_ULOAD) { if (noconflict(as, ref, ir->o + IRDELTA_L2S, 0) && - noconflict(as, ref, IR_CALLS, 0) && /* Don't cross table.clear. */ + noconflict(as, ref, IR_CALLS, 1) && /* Don't cross table.clear. */ !(LJ_GC64 && irt_isaddr(ir->t))) { asm_fuseahuref(as, ir->op1, xallow); return RID_MRM; -- 2.47.1