From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14693 invoked by alias); 28 Feb 2014 08:58:43 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 14681 invoked by uid 89); 28 Feb 2014 08:58:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 X-HELO: am1outboundpool.messaging.microsoft.com Received: from am1ehsobe005.messaging.microsoft.com (HELO am1outboundpool.messaging.microsoft.com) (213.199.154.208) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 28 Feb 2014 08:58:41 +0000 Received: from mail8-am1-R.bigfish.com (10.3.201.242) by AM1EHSOBE009.bigfish.com (10.3.204.29) with Microsoft SMTP Server id 14.1.225.22; Fri, 28 Feb 2014 08:58:37 +0000 Received: from mail8-am1 (localhost [127.0.0.1]) by mail8-am1-R.bigfish.com (Postfix) with ESMTP id D0E6660134; Fri, 28 Feb 2014 08:58:37 +0000 (UTC) X-Forefront-Antispam-Report: CIP:165.204.84.221;KIP:(null);UIP:(null);IPV:NLI;H:atltwp01.amd.com;RD:none;EFVD:NLI X-SpamScore: -2 X-BigFish: VPS-2(zz9371Ic85fh542Ide40hzz1f42h208ch1ee6h1de0h1fdah2073h2146h1202h1e76h2189h1d1ah1d2ah21bch1fc6hzz1de098h8275bh8275dh1de097hz2dh109h839hd25hf0ah1288h12a5h12bdh137ah1441h14ddh1504h1537h153bh15d0h162dh1631h1758h18e1h1946h19b5h1ad9h1b0ah1bceh2222h224fh1d0ch1d2eh1d3fh1dfeh1dffh1e1dh1fe8h1ff5h20f0h2216h22d0h2336h2438h2461h2487h24d7h2516h2545h255eh25cch34h1155h) Received: from mail8-am1 (localhost.localdomain [127.0.0.1]) by mail8-am1 (MessageSwitch) id 1393577916302120_23011; Fri, 28 Feb 2014 08:58:36 +0000 (UTC) Received: from AM1EHSMHS011.bigfish.com (unknown [10.3.201.232]) by mail8-am1.bigfish.com (Postfix) with ESMTP id 44E1948006B; Fri, 28 Feb 2014 08:58:36 +0000 (UTC) Received: from atltwp01.amd.com (165.204.84.221) by AM1EHSMHS011.bigfish.com (10.3.207.111) with Microsoft SMTP Server id 14.16.227.3; Fri, 28 Feb 2014 08:58:35 +0000 X-M-MSG: Received: from satlvexedge02.amd.com (satlvexedge02.amd.com [10.177.96.29]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by atltwp01.amd.com (Axway MailGate 5.2.1) with ESMTPS id 2B2ADCAE613; Fri, 28 Feb 2014 02:58:32 -0600 (CST) Received: from SATLEXDAG06.amd.com (10.181.40.13) by SATLVEXEDGE02.amd.com (10.177.96.29) with Microsoft SMTP Server (TLS) id 14.2.328.9; Fri, 28 Feb 2014 02:58:52 -0600 Received: from SATLEXDAG03.amd.com ([fe80::b5e9:cb70:d30c:3fbc]) by satlexdag06.amd.com ([fe80::1557:d877:7f65:c17%25]) with mapi id 14.02.0328.009; Fri, 28 Feb 2014 03:58:32 -0500 From: "Gopalasubramanian, Ganesh" To: Philipp Tomsich CC: "gcc-patches@gcc.gnu.org" , "pinskia@gmail.com" Subject: RE: [AArch64 05/14] Add AArch64 'prefetch'-pattern. Date: Fri, 28 Feb 2014 08:58:00 -0000 Message-ID: References: <1392757787-25629-6-git-send-email-philipp.tomsich@theobroma-systems.com> In-Reply-To: <1392757787-25629-6-git-send-email-philipp.tomsich@theobroma-systems.com> Content-Type: multipart/mixed; boundary="_002_EB4625145972F94C9680D8CADD6516156805ECBBsatlexdag03amdc_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-FOPE-CONNECTOR: Id%0$Dn%*$RO%0$TLS%0$FQDN%$TlsDn% X-SW-Source: 2014-02/txt/msg01644.txt.bz2 --_002_EB4625145972F94C9680D8CADD6516156805ECBBsatlexdag03amdc_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 3207 With the locality value received in the instruction pattern, I think it wou= ld be safe to handle them in prefetch instruction. This helps especially AArch64 has prefetch instructions that can handle thi= s locality. +(define_insn "prefetch" + [(prefetch (match_operand:DI 0 "address_operand" "r") + (match_operand:QI 1 "const_int_operand" "n") + (match_operand:QI 2 "const_int_operand" "n"))] + "" + "* +{ + int locality =3D INTVAL (operands[2]); + + gcc_assert (IN_RANGE (locality, 0, 3)); + + if (locality =3D=3D 0) + /* non temporal locality */ + return (INTVAL(operands[1])) ? \"prfm\\tPSTL1STRM, [%0, #0]\" : \"prf= m\\tPLDL1STRM, [%0, #0]\"; + + /* temporal locality */ + return (INTVAL(operands[1])) ? \"prfm\\tPSTL%2KEEP, [%0, #0]\" : \"prfm\= \tPLDL%2KEEP, [%0, #0]\"; +}" + [(set_attr "type" "prefetch")] +) + I also have attached a patch that implements * Prefetch with immediate offset in the range 0 to 32760 (multiple of 8). A= dded a predicate for this. * Prefetch with immediate offset - in the range -256 to 255 (Gets generated= only when we have a negative offset. Generates prfum instruction). Added a= predicate for this. * Prefetch with register offset. (modified for printing the locality) Regards Ganesh -----Original Message----- From: Philipp Tomsich [mailto:philipp.tomsich@theobroma-systems.com]=20 Sent: Wednesday, February 19, 2014 2:40 AM To: gcc-patches@gcc.gnu.org Cc: philipp.tomsich@theobroma-systems.com Subject: [AArch64 05/14] Add AArch64 'prefetch'-pattern. --- gcc/config/aarch64/aarch64.md | 17 +++++++++++++++++ gcc/config/arm/types.md | 2 ++ 2 files changed, 19 insertions(+) diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md = index 99a6ac8..b972a1b 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -293,6 +293,23 @@ [(set_attr "type" "no_insn")] ) =20 +(define_insn "prefetch" + [(prefetch (match_operand:DI 0 "register_operand" "r") + (match_operand:QI 1 "const_int_operand" "n") + (match_operand:QI 2 "const_int_operand" "n"))] + "" + "* +{ + if (INTVAL(operands[2]) =3D=3D 0) + /* no temporal locality */ + return (INTVAL(operands[1])) ? \"prfm\\tPSTL1STRM, [%0, #0]\" :=20 +\"prfm\\tPLDL1STRM, [%0, #0]\"; + + /* temporal locality */ + return (INTVAL(operands[1])) ? \"prfm\\tPSTL1KEEP, [%0, #0]\" :=20 +\"prfm\\tPLDL1KEEP, [%0, #0]\"; }" + [(set_attr "type" "prefetch")] +) + (define_insn "trap" [(trap_if (const_int 1) (const_int 8))] "" diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md index cc39cd= 1..1d1280d 100644 --- a/gcc/config/arm/types.md +++ b/gcc/config/arm/types.md @@ -117,6 +117,7 @@ ; mvn_shift_reg inverting move instruction, shifted operand by a regi= ster. ; no_insn an insn which does not represent an instruction in the ; final output, thus having no impact on scheduling. +; prefetch a prefetch instruction ; rbit reverse bits. ; rev reverse bytes. ; sdiv signed division. @@ -553,6 +554,7 @@ call,\ clz,\ no_insn,\ + prefetch,\ csel,\ crc,\ extend,\ -- 1.9.0 --_002_EB4625145972F94C9680D8CADD6516156805ECBBsatlexdag03amdc_ Content-Type: application/octet-stream; name="prefetchdiff.log" Content-Description: prefetchdiff.log Content-Disposition: attachment; filename="prefetchdiff.log"; size=3919; creation-date="Tue, 25 Feb 2014 16:59:38 GMT"; modification-date="Tue, 25 Feb 2014 16:52:46 GMT" Content-Transfer-Encoding: base64 Content-length: 5316 SW5kZXg6IGdjYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIGdjYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0 Lm1kCShyZXZpc2lvbiAyMDgxMDcpCisrKyBnY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC5tZAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5Myw3MyBA QAogICBbKHNldF9hdHRyICJ0eXBlIiAibm9faW5zbiIpXQogKQogCisoZGVm aW5lX2luc24gIipwcmVmZXRjaCIKKyAgWyhwcmVmZXRjaCAocGx1czpESSAo bWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisg ICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6REkgMSAiYWFy Y2g2NF9wcmVmZXRjaF9waW1tIiAiIikKKyAgICAgICAgICAgICApCisgICAg ICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJjb25zdF9pbnRfb3BlcmFu ZCIgIm4iKQorICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMyAiY29u c3RfaW50X29wZXJhbmQiICJuIikpXQorICAiIgorICAiKgoreworICBpbnQg bG9jYWxpdHkgPSBJTlRWQUwgKG9wZXJhbmRzWzNdKTsKKworICBnY2NfYXNz ZXJ0IChJTl9SQU5HRSAobG9jYWxpdHksIDAsIDMpKTsKKworICBpZiAobG9j YWxpdHkgPT0gMCkKKyAgICAgLyogbm9uIHRlbXBvcmFsIGxvY2FsaXR5ICov CisgICAgIHJldHVybiAoSU5UVkFMKG9wZXJhbmRzWzJdKSkgPyBcInByZm1c XHRQU1RMMVNUUk0sIFslMCwgJTFdXCIgOiBcInByZm1cXHRQTERMMVNUUk0s IFslMCwgJTFdXCI7CisKKyAgLyogdGVtcG9yYWwgbG9jYWxpdHkgKi8KKyAg cmV0dXJuIChJTlRWQUwob3BlcmFuZHNbMl0pKSA/IFwicHJmbVxcdFBTVEwl M0tFRVAsIFslMCwgJTFdXCIgOiBcInByZm1cXHRQTERMJTNLRUVQLCBbJTAs ICUxXVwiOworfSIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInByZWZldGNoIild CispCisKKyhkZWZpbmVfaW5zbiAiKnByZWZldGNoIgorICBbKHByZWZldGNo IChwbHVzOkRJIChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJh bmQiICJyIikKKyAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpESSAxICJhYXJjaDY0X3ByZWZldGNoX3Vuc2NhbGVkIiAiIikKKyAgICAg ICAgICAgICApCisgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJj b25zdF9pbnRfb3BlcmFuZCIgIm4iKQorICAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6UUkgMyAiY29uc3RfaW50X29wZXJhbmQiICJuIikpXQorICAiIgor ICAiKgoreworICBpbnQgbG9jYWxpdHkgPSBJTlRWQUwgKG9wZXJhbmRzWzNd KTsKKworICBnY2NfYXNzZXJ0IChJTl9SQU5HRSAobG9jYWxpdHksIDAsIDMp KTsKKworICBpZiAobG9jYWxpdHkgPT0gMCkKKyAgICAgLyogbm9uIHRlbXBv cmFsIGxvY2FsaXR5ICovCisgICAgIHJldHVybiAoSU5UVkFMKG9wZXJhbmRz WzJdKSkgPyBcInByZnVtXFx0UFNUTDFTVFJNLCBbJTAsICUxXVwiIDogXCJw cmZtXFx0UExETDFTVFJNLCBbJTAsICUxXVwiOworCisgIC8qIHRlbXBvcmFs IGxvY2FsaXR5ICovCisgIHJldHVybiAoSU5UVkFMKG9wZXJhbmRzWzJdKSkg PyBcInByZnVtXFx0UFNUTCUzS0VFUCwgWyUwLCAlMV1cIiA6IFwicHJmbVxc dFBMREwlM0tFRVAsIFslMCwgJTFdXCI7Cit9IgorICBbKHNldF9hdHRyICJ0 eXBlIiAicHJlZmV0Y2giKV0KKykKKworKGRlZmluZV9pbnNuICJwcmVmZXRj aCIKKyAgWyhwcmVmZXRjaCAobWF0Y2hfb3BlcmFuZDpESSAwICJhZGRyZXNz X29wZXJhbmQiICJyIikKKyAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJ IDEgImNvbnN0X2ludF9vcGVyYW5kIiAibiIpCisgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpRSSAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSldCisg ICIiCisgICIqCit7CisgIGludCBsb2NhbGl0eSA9IElOVFZBTCAob3BlcmFu ZHNbMl0pOworCisgIGdjY19hc3NlcnQgKElOX1JBTkdFIChsb2NhbGl0eSwg MCwgMykpOworCisgIGlmIChsb2NhbGl0eSA9PSAwKQorICAgICAvKiBub24g dGVtcG9yYWwgbG9jYWxpdHkgKi8KKyAgICAgcmV0dXJuIChJTlRWQUwob3Bl cmFuZHNbMV0pKSA/IFwicHJmbVxcdFBTVEwxU1RSTSwgWyUwLCAjMF1cIiA6 IFwicHJmbVxcdFBMREwxU1RSTSwgWyUwLCAjMF1cIjsKKworICAvKiB0ZW1w b3JhbCBsb2NhbGl0eSAqLworICByZXR1cm4gKElOVFZBTChvcGVyYW5kc1sx XSkpID8gXCJwcmZtXFx0UFNUTCUyS0VFUCwgWyUwLCAjMF1cIiA6IFwicHJm bVxcdFBMREwlMktFRVAsIFslMCwgIzBdXCI7Cit9IgorICBbKHNldF9hdHRy ICJ0eXBlIiAicHJlZmV0Y2giKV0KKykKKwogKGRlZmluZV9pbnNuICJ0cmFw IgogICBbKHRyYXBfaWYgKGNvbnN0X2ludCAxKSAoY29uc3RfaW50IDgpKV0K ICAgIiIKSW5kZXg6IGdjYy9jb25maWcvYWFyY2g2NC9wcmVkaWNhdGVzLm1k Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9jb25maWcvYWFyY2g2 NC9wcmVkaWNhdGVzLm1kCShyZXZpc2lvbiAyMDgxMDcpCisrKyBnY2MvY29u ZmlnL2FhcmNoNjQvcHJlZGljYXRlcy5tZAkod29ya2luZyBjb3B5KQpAQCAt NjYsNiArNjYsMTQgQEAKICAgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50 IikKICAgICAgICAobWF0Y2hfdGVzdCAiKElOVFZBTCAob3ApIDwgMHhmZmZm ZmYgJiYgSU5UVkFMIChvcCkgPiAtMHhmZmZmZmYpIikpKQogCisoZGVmaW5l X3ByZWRpY2F0ZSAiYWFyY2g2NF9wcmVmZXRjaF9waW1tIgorICAoYW5kICht YXRjaF9jb2RlICJjb25zdF9pbnQiKQorICAgICAgIChtYXRjaF90ZXN0ICIo SU5UVkFMIChvcCkgPCAweDdmZjggJiYgKDAgPT0gSU5UVkFMIChvcCkgJSA4 KSkiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJhYXJjaDY0X3ByZWZldGNo X3Vuc2NhbGVkIgorICAoYW5kIChtYXRjaF9jb2RlICJjb25zdF9pbnQiKQor ICAgICAgIChtYXRjaF90ZXN0ICIoSU5UVkFMIChvcCkgPCAyNTUgJiYgSU5U VkFMIChvcCkgPiAtMjU2KSIpKSkKKwogKGRlZmluZV9wcmVkaWNhdGUgImFh cmNoNjRfcGx1c2xvbmdfb3BlcmFuZCIKICAgKGlvciAobWF0Y2hfb3BlcmFu ZCAwICJyZWdpc3Rlcl9vcGVyYW5kIikKICAgICAgICAobWF0Y2hfb3BlcmFu ZCAwICJhYXJjaDY0X3BsdXNsb25nX2ltbWVkaWF0ZSIpKSkKSW5kZXg6IGdj Yy9jb25maWcvYXJtL3R5cGVzLm1kCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGdjYy9jb25maWcvYXJtL3R5cGVzLm1kCShyZXZpc2lvbiAyMDgxMDcp CisrKyBnY2MvY29uZmlnL2FybS90eXBlcy5tZAkod29ya2luZyBjb3B5KQpA QCAtMTE3LDYgKzExNyw3IEBACiA7IG12bl9zaGlmdF9yZWcgICAgICBpbnZl cnRpbmcgbW92ZSBpbnN0cnVjdGlvbiwgc2hpZnRlZCBvcGVyYW5kIGJ5IGEg cmVnaXN0ZXIuCiA7IG5vX2luc24gICAgICAgICAgICBhbiBpbnNuIHdoaWNo IGRvZXMgbm90IHJlcHJlc2VudCBhbiBpbnN0cnVjdGlvbiBpbiB0aGUKIDsg ICAgICAgICAgICAgICAgICAgIGZpbmFsIG91dHB1dCwgdGh1cyBoYXZpbmcg bm8gaW1wYWN0IG9uIHNjaGVkdWxpbmcuCis7IHByZWZldGNoCSAgICAgYSBw cmVmZXRjaCBpbnN0cnVjdGlvbgogOyByYml0ICAgICAgICAgICAgICAgcmV2 ZXJzZSBiaXRzLgogOyByZXYgICAgICAgICAgICAgICAgcmV2ZXJzZSBieXRl cy4KIDsgc2RpdiAgICAgICAgICAgICAgIHNpZ25lZCBkaXZpc2lvbi4KQEAg LTU1Myw2ICs1NTQsNyBAQAogICBjYWxsLFwKICAgY2x6LFwKICAgbm9faW5z bixcCisgIHByZWZldGNoLFwKICAgY3NlbCxcCiAgIGNyYyxcCiAgIGV4dGVu ZCxcCg== --_002_EB4625145972F94C9680D8CADD6516156805ECBBsatlexdag03amdc_--