From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by sourceware.org (Postfix) with ESMTPS id 4D78A3857C51 for ; Mon, 28 Nov 2022 19:45:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4D78A3857C51 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pj1-x102c.google.com with SMTP id hd14-20020a17090b458e00b0021909875bccso6999064pjb.1 for ; Mon, 28 Nov 2022 11:45:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=iX+jwxkngQqaloDwG9G26ikUHbPPWgd2GTUOiopCu1Q=; b=XHGrxyNJIMyhGDbKW6XIBrCAiUCqaMaURrHUlV+JFLi46Z3uNGoe0QazxM00+wtmvF jo4A62bcZW18RrVqWWZ1xufiEMnor6BUcGZj96EvBTlB1P90ZjLIcTvcEzmvyATcKmI1 Y2UWBhdZuJDPD/u5AO4latWlPiqKkHbkGumJqJsPNJW7Rk43LyVC2+Fnbe0n4Sw21Iap FnMxVv5B9J5aYlB4itIe3d1R7cLEQPb9VgWcIxi4F4uZAF3oxDoVjWyLdUzGJwpfURF4 63pyX9r6VgvExG7SGlCYGcFE6z6CGRd2ukamQIJr+Vfj/N76PBJaUH+xYty/pPhhpmHW 4h9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=iX+jwxkngQqaloDwG9G26ikUHbPPWgd2GTUOiopCu1Q=; b=U6hnQG55BHGBZTBHNPn1Qhw08ok0TrKh+1sYYs1uU8ky0X6hbGaHJHSOtZs0i9hjkv 3NvCIiJR6yehQQIRcJoQ2tAwMYOzKIyWTo060OjXISsR92bYvmB4TMfhenGX4mDzt4tn drDp5n4u85iIt1VPJkTMP9uDsmz4R/dGPyY3pizaIw/6QkZJ5ahTxUahPfVoSrBjKiIu GAsyrG9tV7iP17FyjwmWv9Fn2FdLyL5SjI8c8y9zoYH9o7XXEo5EqyF/wD88TakOQf8Y HR+xXRkHNV14DqN8RGzLCOL6XGu3uYyo+6k1ixgMdROEUaUvXlO26U71hnHWKeJ2nOR1 QTnQ== X-Gm-Message-State: ANoB5pmlgHVrRUZ5gsWu4kyN7jR3lRQUSOvvVoCr1WXf7pTIV9dHV/nx K91NkOHRjSKTgm7pAFzWIvI= X-Google-Smtp-Source: AA0mqf75FV1TPzs4NqjEI/BAFQlisnWZFNucoLXtHxwugvtMdlXWBvsRRURX/IvIYZvRT5VyK92ahQ== X-Received: by 2002:a17:90a:3d49:b0:213:9458:8a93 with SMTP id o9-20020a17090a3d4900b0021394588a93mr62572240pjf.233.1669664699063; Mon, 28 Nov 2022 11:44:59 -0800 (PST) Received: from ?IPV6:2601:681:8600:13d0::f0a? ([2601:681:8600:13d0::f0a]) by smtp.gmail.com with ESMTPSA id m16-20020a62a210000000b0057564323987sm457614pff.139.2022.11.28.11.44.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Nov 2022 11:44:58 -0800 (PST) Content-Type: multipart/mixed; boundary="------------quc0cg0J9Q0Z3qwzoy8xvWzO" Message-ID: <2399c0bf-e8dd-0430-432b-b8fb30c0da12@gmail.com> Date: Mon, 28 Nov 2022 12:44:56 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: [PATCH RESEND] riscv: improve the cost model for loading a 64bit constant in rv32. Content-Language: en-US To: Lin Sinan , gcc-patches@gcc.gnu.org Cc: palmer@dabbelt.com, kito.cheng@gmail.com, andrew@sifive.com References: <6787a2d509d2b8ef27083d3b9806661eb8f56102.1668090837.git.sinan.lin@linux.alibaba.com> From: Jeff Law In-Reply-To: <6787a2d509d2b8ef27083d3b9806661eb8f56102.1668090837.git.sinan.lin@linux.alibaba.com> X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------quc0cg0J9Q0Z3qwzoy8xvWzO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/10/22 07:37, Lin Sinan via Gcc-patches wrote: > The motivation of this patch is to correct the wrong estimation of the number of instructions needed for loading a 64bit constant in rv32 in the current cost model(riscv_interger_cost). According to the current implementation, if a constant requires more than 3 instructions(riscv_const_insn and riscv_legitimate_constant_p), then the constant will be put into constant pool when expanding gimple to rtl(legitimate_constant_p hook and emit_move_insn). So the inaccurate cost model leads to the suboptimal codegen in rv32 and the wrong estimation part could be corrected through this fix. > > e.g. the current codegen for loading 0x839290001 in rv32 > > lui a5,%hi(.LC0) > lw a0,%lo(.LC0)(a5) > lw a1,%lo(.LC0+4)(a5) > .LC0: > .word 958988289 > .word 8 > > output after this patch > > li a0,958988288 > addi a0,a0,1 > li a1,8 > > gcc/ChangeLog: > > * config/riscv/riscv.cc (riscv_build_integer): Handle the case of loading 64bit constant in rv32. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/rv32-load-64bit-constant.c: New test. > > Signed-off-by: Lin Sinan I fixed up the ChangeLog and some minor formatting issues in the new code in riscv_build_integer. I also twiddled the test so that it iterates over the optimization levels properly while skipping -O0. Attached is the patch I committed. jeff --------------quc0cg0J9Q0Z3qwzoy8xvWzO Content-Type: text/plain; charset=UTF-8; name="P" Content-Disposition: attachment; filename="P" Content-Transfer-Encoding: base64 Y29tbWl0IDk0MGQ1YjU2OTkwZmRmMTcxZjQ5NTE3YWUxMDI2NzM4MTdiOWM4NjkKQXV0aG9y OiBTaW5hbiA8c2luYW4ubGluQGxpbnV4LmFsaWJhYmEuY29tPgpEYXRlOiAgIE1vbiBOb3Yg MjggMTI6NDE6MTcgMjAyMiAtMDcwMAoKICAgIHJpc2N2OiBpbXByb3ZlIGNvc3QgbW9kZWwg Zm9yIGxvYWRpbmcgNjRiaXQgY29uc3RhbnQgaW4gcnYzMgogICAgCiAgICBUaGUgbW90aXZh dGlvbiBvZiB0aGlzIHBhdGNoIGlzIHRvIGNvcnJlY3QgdGhlIHdyb25nIGVzdGltYXRpb24g b2YgdGhlIG51bWJlciBvZiBpbnN0cnVjdGlvbnMgbmVlZGVkIGZvciBsb2FkaW5nIGEgNjRi aXQgY29uc3RhbnQgaW4gcnYzMiBpbiB0aGUgY3VycmVudCBjb3N0IG1vZGVsKHJpc2N2X2lu dGVyZ2VyX2Nvc3QpLiBBY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24s IGlmIGEgY29uc3RhbnQgcmVxdWlyZXMgbW9yZSB0aGFuIDMgaW5zdHJ1Y3Rpb25zKHJpc2N2 X2NvbnN0X2luc24gYW5kIHJpc2N2X2xlZ2l0aW1hdGVfY29uc3RhbnRfcCksIHRoZW4gdGhl IGNvbnN0YW50IHdpbGwgYmUgcHV0IGludG8gY29uc3RhbnQgcG9vbCB3aGVuIGV4cGFuZGlu ZyBnaW1wbGUgdG8gcnRsKGxlZ2l0aW1hdGVfY29uc3RhbnRfcCBob29rIGFuZCBlbWl0X21v dmVfaW5zbikuIFNvIHRoZSBpbmFjY3VyYXRlIGNvc3QgbW9kZWwgbGVhZHMgdG8gdGhlIHN1 Ym9wdGltYWwgY29kZWdlbiBpbiBydjMyIGFuZCB0aGUgd3JvbmcgZXN0aW1hdGlvbiBwYXJ0 IGNvdWxkIGJlIGNvcnJlY3RlZCB0aHJvdWdoIHRoaXMgZml4LgogICAgCiAgICBlLmcuIHRo ZSBjdXJyZW50IGNvZGVnZW4gZm9yIGxvYWRpbmcgMHg4MzkyOTAwMDEgaW4gcnYzMgogICAg CiAgICAgIGx1aSAgICAgYTUsJWhpKC5MQzApCiAgICAgIGx3ICAgICAgYTAsJWxvKC5MQzAp KGE1KQogICAgICBsdyAgICAgIGExLCVsbyguTEMwKzQpKGE1KQogICAgLkxDMDoKICAgICAg LndvcmQgICA5NTg5ODgyODkKICAgICAgLndvcmQgICA4CiAgICAKICAgIG91dHB1dCBhZnRl ciB0aGlzIHBhdGNoCiAgICAKICAgICAgbGkgYTAsOTU4OTg4Mjg4CiAgICAgIGFkZGkgYTAs YTAsMQogICAgICBsaSBhMSw4CiAgICAKICAgIGdjYy9DaGFuZ2VMb2c6CiAgICAKICAgICAg ICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YuY2MgKHJpc2N2X2J1aWxkX2ludGVnZXIpOiBJ bXByb3ZlIHNvbWUgY2FzZXMKICAgICAgICAgICAgb2YgbG9hZGluZyA2NGJpdCBjb25zdGFu dHMgZm9yIHJ2MzIuCiAgICAKICAgIGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgogICAgCiAg ICAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydjMyLWxvYWQtNjRiaXQtY29uc3RhbnQu YzogTmV3IHRlc3QuCgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MKaW5kZXggYWIwMmE4MWUxNTIuLjA1YmRiYTVh YjRkIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjCisrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YuY2MKQEAgLTYyNSw2ICs2MjUsMzAgQEAgcmlzY3ZfYnVpbGRf aW50ZWdlciAoc3RydWN0IHJpc2N2X2ludGVnZXJfb3AgKmNvZGVzLCBIT1NUX1dJREVfSU5U IHZhbHVlLAogCX0KICAgICB9CiAKKyAgaWYgKCFUQVJHRVRfNjRCSVQKKyAgICAgICYmICh2 YWx1ZSA+IElOVDMyX01BWCB8fCB2YWx1ZSA8IElOVDMyX01JTikpCisgICAgeworICAgICAg dW5zaWduZWQgSE9TVF9XSURFX0lOVCBsb3ZhbCA9IHNleHRfaHdpICh2YWx1ZSwgMzIpOwor ICAgICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBoaXZhbCA9IHNleHRfaHdpICgodmFsdWUg LSBsb3ZhbCkgPj4gMzIsIDMyKTsKKyAgICAgIHN0cnVjdCByaXNjdl9pbnRlZ2VyX29wIGFs dF9jb2Rlc1tSSVNDVl9NQVhfSU5URUdFUl9PUFNdOworICAgICAgc3RydWN0IHJpc2N2X2lu dGVnZXJfb3AgaGljb2RlW1JJU0NWX01BWF9JTlRFR0VSX09QU107CisgICAgICBpbnQgaGlf Y29zdCwgbG9fY29zdDsKKworICAgICAgaGlfY29zdCA9IHJpc2N2X2J1aWxkX2ludGVnZXJf MSAoaGljb2RlLCBoaXZhbCwgbW9kZSk7CisgICAgICBpZiAoaGlfY29zdCA8IGNvc3QpCisJ eworCSAgbG9fY29zdCA9IHJpc2N2X2J1aWxkX2ludGVnZXJfMSAoYWx0X2NvZGVzLCBsb3Zh bCwgbW9kZSk7CisJICBpZiAobG9fY29zdCArIGhpX2Nvc3QgPCBjb3N0KQorCSAgICB7CisJ ICAgICAgbWVtY3B5IChjb2RlcywgYWx0X2NvZGVzLAorCQkgICAgICBsb19jb3N0ICogc2l6 ZW9mIChzdHJ1Y3QgcmlzY3ZfaW50ZWdlcl9vcCkpOworCSAgICAgIG1lbWNweSAoY29kZXMg KyBsb19jb3N0LCBoaWNvZGUsCisJCSAgICAgIGhpX2Nvc3QgKiBzaXplb2YgKHN0cnVjdCBy aXNjdl9pbnRlZ2VyX29wKSk7CisJICAgICAgY29zdCA9IGxvX2Nvc3QgKyBoaV9jb3N0Owor CSAgICB9CisJfQorICAgIH0KKwogICByZXR1cm4gY29zdDsKIH0KIApkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2MzItbG9hZC02NGJpdC1jb25zdGFu dC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2MzItbG9hZC02NGJpdC1j b25zdGFudC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NTRl MWRkZjFjMAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydjMyLWxvYWQtNjRiaXQtY29uc3RhbnQuYwpAQCAtMCwwICsxLDQwIEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmltIC1t YWJpPWlscDMyIiB9ICovCisvKiB7IGRnLXNraXAtaWYgIiIgeyAqLSotKiB9IHsgIi1PMCIg fSB9ICovCisKKworLyogVGhpcyB0ZXN0IG9ubHkgYXBwbGllcyB0byBSVjMyLiBTb21lIG9m IDY0Yml0IGNvbnN0YW50cyBpbiB0aGlzIHRlc3Qgd2lsbCBiZSBwdXQKK2ludG8gdGhlIGNv bnN0YW50IHBvb2wgaW4gUlY2NCwgc2luY2UgUlY2NCBtaWdodCBuZWVkIG9uZSBleHRyYSBp bnN0cnVjdGlvbiB0byBsb2FkCis2NGJpdCBjb25zdGFudC4gKi8KKwordW5zaWduZWQgbG9u ZyBsb25nCitydjMyX21vdl82NGJpdF9pbnQxICh2b2lkKQoreworICByZXR1cm4gMHg3Mzky OTAwMDFMTDsKK30KKwordW5zaWduZWQgbG9uZyBsb25nCitydjMyX21vdl82NGJpdF9pbnQy ICh2b2lkKQoreworICByZXR1cm4gMHg4MzkyOTAwMDFMTDsKK30KKwordW5zaWduZWQgbG9u ZyBsb25nCitydjMyX21vdl82NGJpdF9pbnQzICh2b2lkKQoreworICByZXR1cm4gMHgzOTI5 MDAwMTM5MjkwMDAwTEw7Cit9CisKK3Vuc2lnbmVkIGxvbmcgbG9uZworcnYzMl9tb3ZfNjRi aXRfaW50NCAodm9pZCkKK3sKKyAgcmV0dXJuIDB4MzkyOTAwMTEzOTI5MDAwMExMOworfQor Cit1bnNpZ25lZCBsb25nIGxvbmcKK3J2MzJfbW92XzY0Yml0X2ludDUgKHZvaWQpCit7Cisg IHJldHVybiAweDE0NzM2ZGVmMzkyOTAwMDBMTDsKK30KKworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCAibHdcdCIgfSB9ICovCg== --------------quc0cg0J9Q0Z3qwzoy8xvWzO--