From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by sourceware.org (Postfix) with ESMTPS id 1E91C3858D20 for ; Wed, 12 Jul 2023 20:59:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1E91C3858D20 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-pl1-x635.google.com with SMTP id d9443c01a7336-1b9e9765f2cso55565ad.3 for ; Wed, 12 Jul 2023 13:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689195587; x=1691787587; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=vQhjluOdh1kUbmPcO/LT+ySJ0MhuUTRGJLHr0XB9mWg=; b=h1vyeolxhbY6tozvvQxIo0NbpOBuaaUjPN/OXWImXf6tGjOODf2bVCT+gcGoWHXfjR Ktky2ihM0lb0zyJCPZcyOEOXKE0cV85f+OdSNbN+cmXwfQS7qWqGEU/8fdZDB1opK3ib G0QEhu0wO9Xe9OOG6ff7K8PO+EKB7g7zoknU8x5zwOP2yHp4xfB9Dgaxn1iJ1MoJeHcS yOAzfY9At7/RoeIA/Lvd5i4tDqJBFIId1bp5Iq/xdDMaEz2eRn7NyzQXoyviy5ohguLo +B0MPNPPLDZRIEgPxZ9D0xYySJuje7CryttHu0psTpTJTx58k5HPZ/jjPYrFfolC0y6x szwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689195587; x=1691787587; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=vQhjluOdh1kUbmPcO/LT+ySJ0MhuUTRGJLHr0XB9mWg=; b=dBh4vwTEKeRVDfux0aHGlxfl7NWys1dZwgiaJ17LfISazmYrZMkgcnG//OifZXXkJV JCrlYOHAvBPFCB8mIWdPBN5mEZ9dVq1E8skXNgA073A9+yS73AhjHQwtjGDDIrEkqrFm NEoYG1maMSk28DRNCXBfU+OJh1nCmkyp/2V4H0+fJSzhW9qO4cJYHC6+d0bKsDagbx5C FQLyw/3EsZkK798PFnsllJdwLD8Zwni3s80bJ08wy4KghKZYbeA8Y9+VNilpLitzzZxA vDtoIuLp5zMZhtI8zYxzVgywQgVyiPnxrRqqMfhro/z8QXRthU0alJggZAxQOLqsKTfT WeXQ== X-Gm-Message-State: ABy/qLZxRfq0WlSonxobZFJhBV7Z7q80G4fs7EyOUfbw6saXWidexbD5 txl59C0BsFJmUU3ccPzSUVHmZ0janB719l4qLZfl0+ezoLQ= X-Google-Smtp-Source: APBJJlFvEkDHOu1f81ouXQSJarga63FEO7FYBaGXqKZs/+6vArC5ZjGySjgZm3Ttwdcn0we8/X2X5qsFnJX0097nlaY= X-Received: by 2002:a17:903:2443:b0:1b8:a6b8:a400 with SMTP id l3-20020a170903244300b001b8a6b8a400mr19874743pls.67.1689195586821; Wed, 12 Jul 2023 13:59:46 -0700 (PDT) MIME-Version: 1.0 From: Jivan Hakobyan Date: Thu, 13 Jul 2023 00:59:30 +0400 Message-ID: Subject: RISC-V: Folding memory for FP + constant case To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000e932ca0600507e19" X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: --000000000000e932ca0600507e19 Content-Type: multipart/alternative; boundary="000000000000e932c80600507e17" --000000000000e932c80600507e17 Content-Type: text/plain; charset="UTF-8" Accessing local arrays element turned into load form (fp + (index << C1)) + C2 address. In the case when access is in the loop we got loop invariant computation. For some reason, moving out that part cannot be done in loop-invariant passes. But we can handle that in target-specific hook (legitimize_address). That provides an opportunity to rewrite memory access more suitable for the target architecture. This patch solves the mentioned case by rewriting mentioned case to ((fp + C2) + (index << C1)) I have evaluated it on SPEC2017 and got an improvement on leela (over 7b instructions, .39% of the dynamic count) and dwarfs the regression for gcc (14m instructions, .0012% of the dynamic count). gcc/ChangeLog: * config/riscv/riscv.cc (riscv_legitimize_address): Handle folding. (mem_shadd_or_shadd_rtx_p): New predicate. -- With the best regards Jivan Hakobyan --000000000000e932c80600507e17-- --000000000000e932ca0600507e19 Content-Type: text/x-patch; charset="US-ASCII"; name="legitimize_address.diff" Content-Disposition: attachment; filename="legitimize_address.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lk06prvf0 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LmNjCmluZGV4IGU0ZGM4MTE1ZTY5NmVkNDRh ZmZlNmVlOGI1MWQ2MzVmZTBlYWFhMzMuLjJhN2U0NjRiODU1ZWM0NWYxZmNl NGRhZWMzNmQ4NDg0MmYzZjNlYTQgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YuY2MKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5j YwpAQCAtMTc1NCw2ICsxNzU0LDIyIEBAIHJpc2N2X3Nob3J0ZW5fbHdfb2Zm c2V0IChydHggYmFzZSwgSE9TVF9XSURFX0lOVCBvZmZzZXQpCiAgIHJldHVy biBhZGRyOwogfQogCisvKiBIZWxwZXIgZm9yIHJpc2N2X2xlZ2l0aW1pemVf YWRkcmVzcy4gR2l2ZW4gWCwgcmV0dXJuIHRydWUgaWYgaXQKKyAgIGlzIGEg bGVmdCBzaGlmdCBieSAxLCAyIG9yIDMgcG9zaXRpb25zIG9yIGEgbXVsdGlw bHkgYnkgMiwgNCBvciA4LgorCisgICBUaGlzIHJlc3BlY3RpdmVseSByZXBy ZXNlbnQgY2Fub25pY2FsIHNoaWZ0LWFkZCBydHhzIG9yIHNjYWxlZAorICAg bWVtb3J5IGFkZHJlc3Nlcy4gICovCitzdGF0aWMgYm9vbAorbWVtX3NoYWRk X29yX3NoYWRkX3J0eF9wIChydHggeCkKK3sKKyAgcmV0dXJuICgoR0VUX0NP REUgKHgpID09IEFTSElGVAorICAgICAgICAgICB8fCBHRVRfQ09ERSAoeCkg PT0gTVVMVCkKKyAgICAgICAgICAmJiBHRVRfQ09ERSAoWEVYUCAoeCwgMSkp ID09IENPTlNUX0lOVAorICAgICAgICAgICYmICgoR0VUX0NPREUgKHgpID09 IEFTSElGVCAmJiBJTl9SQU5HRSAoSU5UVkFMIChYRVhQICh4LCAxKSksIDEs IDMpKQorICAgICAgICAgICAgICB8fCAoR0VUX0NPREUgKHgpID09IE1VTFQK KyAgICAgICAgICAgICAgICAgICYmIElOX1JBTkdFIChleGFjdF9sb2cyIChJ TlRWQUwgKFhFWFAgKHgsIDEpKSksIDEsIDMpKSkpOworfQorCiAvKiBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW1wbGVtZW50IExFR0lUSU1JWkVfQURE UkVTUy4gIElmIFggY2FuCiAgICBiZSBsZWdpdGltaXplZCBpbiBhIHdheSB0 aGF0IHRoZSBnZW5lcmljIG1hY2hpbmVyeSBtaWdodCBub3QgZXhwZWN0LAog ICAgcmV0dXJuIGEgbmV3IGFkZHJlc3MsIG90aGVyd2lzZSByZXR1cm4gTlVM TC4gIE1PREUgaXMgdGhlIG1vZGUgb2YKQEAgLTE3NzksNiArMTc5NSwzMyBA QCByaXNjdl9sZWdpdGltaXplX2FkZHJlc3MgKHJ0eCB4LCBydHggb2xkeCBB VFRSSUJVVEVfVU5VU0VELAogICAgICAgcnR4IGJhc2UgPSBYRVhQICh4LCAw KTsKICAgICAgIEhPU1RfV0lERV9JTlQgb2Zmc2V0ID0gSU5UVkFMIChYRVhQ ICh4LCAxKSk7CiAKKyAgICAgIC8qIEhhbmRsZSAocGx1cyAocGx1cyAobXVs dCAoYSkgKG1lbV9zaGFkZF9jb25zdGFudCkpIChmcCkpIChDKSkgY2FzZS4g ICovCisgICAgICBpZiAoR0VUX0NPREUgKGJhc2UpID09IFBMVVMgJiYgbWVt X3NoYWRkX29yX3NoYWRkX3J0eF9wIChYRVhQIChiYXNlLCAwKSkKKyAgICAg ICAgICAmJiBTTUFMTF9PUEVSQU5EIChvZmZzZXQpKQorICAgICAgICB7CisK KyAgICAgICAgICBydHggaW5kZXggPSBYRVhQIChiYXNlLCAwKTsKKyAgICAg ICAgICBydHggZnAgPSBYRVhQIChiYXNlLCAxKTsKKyAgICAgICAgICBpZiAo UkVHTk8gKGZwKSA9PSBWSVJUVUFMX1NUQUNLX1ZBUlNfUkVHTlVNKQorICAg ICAgICAgICAgeworCisgICAgICAgICAgICAgIC8qIElmIHdlIHdlcmUgZ2l2 ZW4gYSBNVUxULCB3ZSBtdXN0IGZpeCB0aGUgY29uc3RhbnQKKyAgICAgICAg ICAgICAgICAgYXMgd2UncmUgZ29pbmcgdG8gY3JlYXRlIHRoZSBBU0hJRlQg Zm9ybS4gICovCisgICAgICAgICAgICAgIGludCBzaGlmdF92YWwgPSBJTlRW QUwgKFhFWFAgKGluZGV4LCAxKSk7CisgICAgICAgICAgICAgIGlmIChHRVRf Q09ERSAoaW5kZXgpID09IE1VTFQpCisgICAgICAgICAgICAgICAgc2hpZnRf dmFsID0gZXhhY3RfbG9nMiAoc2hpZnRfdmFsKTsKKworICAgICAgICAgICAg ICBydHggcmVnMSA9IGdlbl9yZWdfcnR4IChQbW9kZSk7CisgICAgICAgICAg ICAgIHJ0eCByZWcyID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKKyAgICAgICAg ICAgICAgcnR4IHJlZzMgPSBnZW5fcmVnX3J0eCAoUG1vZGUpOworICAgICAg ICAgICAgICByaXNjdl9lbWl0X2JpbmFyeSAoUExVUywgcmVnMSwgZnAsIEdF Tl9JTlQgKG9mZnNldCkpOworICAgICAgICAgICAgICByaXNjdl9lbWl0X2Jp bmFyeSAoQVNISUZULCByZWcyLCBYRVhQIChpbmRleCwgMCksIEdFTl9JTlQg KHNoaWZ0X3ZhbCkpOworICAgICAgICAgICAgICByaXNjdl9lbWl0X2JpbmFy eSAoUExVUywgcmVnMywgcmVnMiwgcmVnMSk7CisKKyAgICAgICAgICAgICAg cmV0dXJuIHJlZzM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAg ICAgaWYgKCFyaXNjdl92YWxpZF9iYXNlX3JlZ2lzdGVyX3AgKGJhc2UsIG1v ZGUsIGZhbHNlKSkKIAliYXNlID0gY29weV90b19tb2RlX3JlZyAoUG1vZGUs IGJhc2UpOwogICAgICAgaWYgKG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXpl X3AgKGNmdW4pCg== --000000000000e932ca0600507e19--