[{"id":1798368,"web_url":"http://patchwork.ozlabs.org/comment/1798368/","msgid":"<59FBD3DB.7050507@codesourcery.com>","list_archive_url":null,"date":"2017-11-03T02:26:35","subject":"Re: [PATCH 5/6] [ARC] Add 'uncached' attribute.","submitter":{"id":4347,"url":"http://patchwork.ozlabs.org/api/people/4347/","name":"Sandra Loosemore","email":"sandra@codesourcery.com"},"content":"On 11/02/2017 06:30 AM, Claudiu Zissulescu wrote:\n> From: claziss <claziss@synopsys.com>\n>\n> The _Uncached type qualifier can be used to bypass the cache without\n> resorting to declaring variables as volatile.\n>\n> gcc/\n> 2017-07-12  Claudiu Zissulescu  <claziss@synopsys.com>\n>\n> \t* config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.\n> \t* config/arc/arc.c (arc_handle_uncached_attribute): New function.\n> \t(arc_attribute_table): Add 'uncached' attribute.\n> \t(arc_print_operand): Print '.di' flag for uncached memory\n> \taccesses.\n> \t(arc_in_small_data_p): Do not consider for small data the uncached\n> \ttypes.\n> \t(arc_is_uncached_mem_p): New function.\n> \t* config/arc/predicates.md (compact_store_memory_operand): Check\n> \tfor uncached memory accesses.\n> \t(nonvol_nonimm_operand): Likewise.\n\nI see no documentation here.\n\n-Sandra","headers":{"Return-Path":"<gcc-patches-return-465805-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-465805-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"yPvUC3P6\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ySm7519PNz9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 13:26:53 +1100 (AEDT)","(qmail 73273 invoked by alias); 3 Nov 2017 02:26:45 -0000","(qmail 73245 invoked by uid 89); 3 Nov 2017 02:26:44 -0000","from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131)\n\tby sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with\n\tESMTP; Fri, 03 Nov 2017 02:26:42 +0000","from svr-orw-mbx-03.mgc.mentorg.com ([147.34.90.203])\tby\n\trelay1.mentorg.com with esmtps\n\t(TLSv1.2:ECDHE-RSA-AES256-SHA384:256)\tid 1eARgs-0002er-Pk\n\tfrom Sandra_Loosemore@mentor.com ; Thu, 02 Nov 2017 19:26:38 -0700","from [127.0.0.1] (147.34.91.1) by svr-orw-mbx-03.mgc.mentorg.com\n\t(147.34.90.203) with Microsoft SMTP Server (TLS) id\n\t15.0.1320.4; Thu, 2 Nov 2017 19:26:36 -0700"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:references:cc:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=ipHm+cHhefBhIf+Y28u7Qfmvj8xEmPNtioyZjEqdQi08z11EWDCrl\n\tJ8evP1zdAmgvEzs/c3kDuhvOX6j92dmb5Yl/EVXEwEZ4syxY0gSPILfhhk3gF7fx\n\t0g+xSWPKSjQUeTlrDi8u45hiZLF9CZJVxhQOxzRkDARHCnsC7UxL8s=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:references:cc:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; s=default;\n\tbh=/DvZ+D6ZT7zJnupmdJk6iZHnKrw=; b=yPvUC3P6w0X4CTeg3w77agC70lze\n\tAo77cjJRdgQdXpe/QQZwBwIXgFziF2dyLYgV1GgqqoFRelHXYy/9dZpJq3G0AI0h\n\tMclIi8Wk8pgnF5Qp4uNjMqIln0N8PfaGyp1tlqFqqqAb5srkGliIMxj/2kJWppYn\n\tre4y7NRETuggwds=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-2.2 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:879","X-HELO":"relay1.mentorg.com","Subject":"Re: [PATCH 5/6] [ARC] Add 'uncached' attribute.","To":"Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>,\n\t<gcc-patches@gcc.gnu.org>","References":"<1509625835-22344-1-git-send-email-claziss@synopsys.com>\n\t<1509625835-22344-6-git-send-email-claziss@synopsys.com>","CC":"<Francois.Bedard@synopsys.com>, <andrew.burgess@embecosm.com>","From":"Sandra Loosemore <sandra@codesourcery.com>","Message-ID":"<59FBD3DB.7050507@codesourcery.com>","Date":"Thu, 2 Nov 2017 20:26:35 -0600","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:38.0) Gecko/20100101 Thunderbird/38.5.1","MIME-Version":"1.0","In-Reply-To":"<1509625835-22344-6-git-send-email-claziss@synopsys.com>","Content-Type":"text/plain; charset=\"windows-1252\"; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"SVR-ORW-MBX-05.mgc.mentorg.com (147.34.90.205) To\n\tsvr-orw-mbx-03.mgc.mentorg.com (147.34.90.203)"}},{"id":1798548,"web_url":"http://patchwork.ozlabs.org/comment/1798548/","msgid":"<098ECE41A0A6114BB2A07F1EC238DE89667B673E@de02wembxa.internal.synopsys.com>","list_archive_url":null,"date":"2017-11-03T11:22:24","subject":"RE: [PATCH 5/6] [ARC] Add 'uncached' attribute.","submitter":{"id":67086,"url":"http://patchwork.ozlabs.org/api/people/67086/","name":"Claudiu Zissulescu","email":"Claudiu.Zissulescu@synopsys.com"},"content":"> \n> I see no documentation here.\n> \n\nUps, forgot this one :) Please find it attached. I'll merge it into the final patch when everything is approved.\n\nThanks,\nClaudiu","headers":{"Return-Path":"<gcc-patches-return-465833-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-465833-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"qfKXH15w\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yT03W2wXBz9sNc\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  3 Nov 2017 22:24:38 +1100 (AEDT)","(qmail 64098 invoked by alias); 3 Nov 2017 11:24:26 -0000","(qmail 63973 invoked by uid 89); 3 Nov 2017 11:24:17 -0000","from smtprelay.synopsys.com (HELO smtprelay.synopsys.com)\n\t(198.182.60.111) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tFri, 03 Nov 2017 11:24:14 +0000","from mailhost.synopsys.com (mailhost3.synopsys.com\n\t[10.12.238.238])\tby smtprelay.synopsys.com (Postfix) with\n\tESMTP id DDE9210C16AC; Fri,  3 Nov 2017 04:24:08 -0700 (PDT)","from mailhost.synopsys.com (localhost [127.0.0.1])\tby\n\tmailhost.synopsys.com (Postfix) with ESMTP id 9655C80B;\n\tFri,  3 Nov 2017 04:24:08 -0700 (PDT)","from US01WEHTC2.internal.synopsys.com\n\t(us01wehtc2-vip.internal.synopsys.com [10.12.239.238])\tby\n\tmailhost.synopsys.com (Postfix) with ESMTP id 2CC9E808;\n\tFri,  3 Nov 2017 04:24:08 -0700 (PDT)","from DE02WEHTCA.internal.synopsys.com (10.225.19.92) by\n\tUS01WEHTC2.internal.synopsys.com (10.12.239.237) with\n\tMicrosoft SMTP Server (TLS) id 14.3.266.1;\n\tFri, 3 Nov 2017 04:22:27 -0700","from DE02WEMBXA.internal.synopsys.com ([fe80::a014:7216:77d:d55c])\n\tby DE02WEHTCA.internal.synopsys.com ([::1]) with mapi id\n\t14.03.0266.001; Fri, 3 Nov 2017 12:22:25 +0100"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:date:message-id:references:in-reply-to\n\t:content-type:mime-version; q=dns; s=default; b=MweMxJgcbunOiVKD\n\tqa4GhsZjM6bCj3djJlqMZY/RRFeneflO81J7DapU2KJLCkzl0V6U1hW/sXkpToAm\n\tIDVUgdiQzh56Ovi2jq+ipbrExQWWdBpJz1EmNmeSaGQfmCdEeMKOYFg5fwrbQoZ1\n\ttNUCUv6u3r5NgPRjhOeAIq/yNuQ=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:date:message-id:references:in-reply-to\n\t:content-type:mime-version; s=default; bh=fG5EJC8Uhkd/4I+19RKTll\n\tZpWwk=; b=qfKXH15wag03w2X5rUYyCl7V0KrOTw3rYk2/WcdgYiHdDP3iugM+cl\n\t4wMl95OruIxwjx2wIAeURXCRwMylEUg2NMQelTY8pHmb7TlowZe9WBsvXAHSviaX\n\tkCEXrqjmds34NYffNLxUIuO7wVy64HdtTKYT8eaGSJIEeXAOtXzk4=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-1.3 required=5.0 tests=AWL, BAYES_00,\n\tKAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE,\n\tRP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=H*M:internal,\n\tups, H*c:HHH, Hx-languages-length:217","X-HELO":"smtprelay.synopsys.com","From":"Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>","To":"Sandra Loosemore <sandra@codesourcery.com>,\n\t\"gcc-patches@gcc.gnu.org\"\t<gcc-patches@gcc.gnu.org>","CC":"\"Francois.Bedard@synopsys.com\" <Francois.Bedard@synopsys.com>,\n\t\"andrew.burgess@embecosm.com\" <andrew.burgess@embecosm.com>","Subject":"RE: [PATCH 5/6] [ARC] Add 'uncached' attribute.","Date":"Fri, 3 Nov 2017 11:22:24 +0000","Message-ID":"<098ECE41A0A6114BB2A07F1EC238DE89667B673E@de02wembxa.internal.synopsys.com>","References":"<1509625835-22344-1-git-send-email-claziss@synopsys.com>\n\t<1509625835-22344-6-git-send-email-claziss@synopsys.com>\n\t<59FBD3DB.7050507@codesourcery.com>","In-Reply-To":"<59FBD3DB.7050507@codesourcery.com>","x-dg-ref":"PG1ldGE+PGF0IG5tPSIwMDAxLWFyYy1kb2MtYWRkLXVuY2FjaGVkLWRvY3VtZW50YXRpb24ucGF0Y2giIHA9IlxcbmwyMGZpbGVyMDFcbmwyMGgyXGNsYXppc3NcMDAwMS1hcmMtZG9jLWFkZC11bmNhY2hlZC1kb2N1bWVudGF0aW9uLnBhdGNoIiBzej0iMTI1NCIgdD0iMTMxNTQxODE1OTQ2OTc4NTQwIiBoPSJOQU56VVA5Sngzb2FDMjg3aUhOTUNGbW4zVDg9IiBpZD0iIiBibD0iMCIgYm89IjAiLz48L21ldGE+","Content-Type":"multipart/mixed;\n\tboundary=\"_002_098ECE41A0A6114BB2A07F1EC238DE89667B673Ede02wembxainter_\"","MIME-Version":"1.0"}},{"id":1798842,"web_url":"http://patchwork.ozlabs.org/comment/1798842/","msgid":"<59FCBBAE.9040500@codesourcery.com>","list_archive_url":null,"date":"2017-11-03T18:55:42","subject":"Re: [PATCH 5/6] [ARC] Add 'uncached' attribute.","submitter":{"id":4347,"url":"http://patchwork.ozlabs.org/api/people/4347/","name":"Sandra Loosemore","email":"sandra@codesourcery.com"},"content":"On 11/03/2017 05:22 AM, Claudiu Zissulescu wrote:\n>>\n>> I see no documentation here.\n>>\n>\n> Ups, forgot this one :) Please find it attached. I'll merge it into the final patch when everything is approved.\n>\n> Thanks,\n> Claudiu\n>\n> +@node ARC Type Attributes\n> +@subsection ARC Type Attributes\n> +\n> +@cindex @code{uncached} type attribute, ARC\n> +Declaring variables @code{uncached} allows you to exclude data-cache\n\nSince this is a type attribute and not a variable attribute (I presume \nto allow accessing objects through a pointer), it would be better to say\n\nDeclaring objects with the @code{uncached} type attribute allows....\n\n> +participation in load and store operations on those variables without\n\nAnd s/variables/objects/ here too.\n\n> +involving the additional semantic implications of volatile.  The\n\nYou probably want @code{volatile} markup here?\n\n> +@code{.di} instruction suffix is used for all loads and stores of data\n> +declared @code{uncached}.\n> +\n\nOtherwise, the description makes sense to me.  (In fact, I might \neventually want to copy this attribute over to the Nios II backend, too, \nsince it also has similar \"io\"-variant load/store instructions.)\n\n-Sandra","headers":{"Return-Path":"<gcc-patches-return-465912-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-465912-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"JtFuURhE\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yTB4H3wh8z9sNr\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  4 Nov 2017 05:55:58 +1100 (AEDT)","(qmail 17414 invoked by alias); 3 Nov 2017 18:55:49 -0000","(qmail 17404 invoked by uid 89); 3 Nov 2017 18:55:49 -0000","from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131)\n\tby sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with\n\tESMTP; Fri, 03 Nov 2017 18:55:48 +0000","from svr-orw-mbx-03.mgc.mentorg.com ([147.34.90.203])\tby\n\trelay1.mentorg.com with esmtps\n\t(TLSv1.2:ECDHE-RSA-AES256-SHA384:256)\tid 1eAh85-0003ea-RS\n\tfrom Sandra_Loosemore@mentor.com ; Fri, 03 Nov 2017 11:55:45 -0700","from [127.0.0.1] (147.34.91.1) by svr-orw-mbx-03.mgc.mentorg.com\n\t(147.34.90.203) with Microsoft SMTP Server (TLS) id\n\t15.0.1320.4; Fri, 3 Nov 2017 11:55:43 -0700"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:references:cc:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=h1/afsOGP4mF05BPcn8oG8LPWbdqdOQhdVzeLCTWaO4z9PTIiqMUb\n\tFDvE4bppKyuM43syokOjbtbj62qGZWDHQEp58BrjmDe/ueJ+RfFiktQzGh7EQeUW\n\tKZCA8drTsEiea+tsWRfd1DvBCq2k7PxARQfLisWzPKMgt/A/Ag83Ao=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender\n\t:subject:to:references:cc:from:message-id:date:mime-version\n\t:in-reply-to:content-type:content-transfer-encoding; s=default;\n\tbh=pNTvrrdZpYHI7RjoTIEdsEspMRI=; b=JtFuURhEDKXBngbFLcexseveGf/Z\n\tGN8CD2USiWRHbrJgnnYgZjrrWw5Sl7GCepAN83AXRgZ38xDbWTquKeEPm0UKD8f0\n\tx4r55IRl5VmtgS8z0KTxH3NC3yObAAG7JX6BnYL2eaYcB3HJrbLEKgLTyb5aXLRd\n\tnTwLUaszHej03MU=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-6.7 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_1, RCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=implications","X-HELO":"relay1.mentorg.com","Subject":"Re: [PATCH 5/6] [ARC] Add 'uncached' attribute.","To":"Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>,\n\t\"gcc-patches@gcc.gnu.org\" <gcc-patches@gcc.gnu.org>","References":"<1509625835-22344-1-git-send-email-claziss@synopsys.com>\n\t<1509625835-22344-6-git-send-email-claziss@synopsys.com>\n\t<59FBD3DB.7050507@codesourcery.com>\n\t<098ECE41A0A6114BB2A07F1EC238DE89667B673E@de02wembxa.internal.synopsys.com>","CC":"\"Francois.Bedard@synopsys.com\" <Francois.Bedard@synopsys.com>,\n\t\"andrew.burgess@embecosm.com\" <andrew.burgess@embecosm.com>","From":"Sandra Loosemore <sandra@codesourcery.com>","Message-ID":"<59FCBBAE.9040500@codesourcery.com>","Date":"Fri, 3 Nov 2017 12:55:42 -0600","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:38.0) Gecko/20100101 Thunderbird/38.5.1","MIME-Version":"1.0","In-Reply-To":"<098ECE41A0A6114BB2A07F1EC238DE89667B673E@de02wembxa.internal.synopsys.com>","Content-Type":"text/plain; charset=\"windows-1252\"; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"svr-orw-mbx-08.mgc.mentorg.com (147.34.90.208) To\n\tsvr-orw-mbx-03.mgc.mentorg.com (147.34.90.203)"}},{"id":1801990,"web_url":"http://patchwork.ozlabs.org/comment/1801990/","msgid":"<098ECE41A0A6114BB2A07F1EC238DE89667B7EE1@de02wembxa.internal.synopsys.com>","list_archive_url":null,"date":"2017-11-09T09:09:37","subject":"RE: [PATCH 5/6] [ARC] Add 'uncached' attribute.","submitter":{"id":67086,"url":"http://patchwork.ozlabs.org/api/people/67086/","name":"Claudiu Zissulescu","email":"Claudiu.Zissulescu@synopsys.com"},"content":"Just for the record, here it is the updated documentation as suggested. And, indeed the description may very well be suited for NIOS io-variant as well.\n\nThank you Sandra,\nClaudiu\n\n---\n gcc/doc/extend.texi | 11 +++++++++++\n 1 file changed, 11 insertions(+)\n\ndiff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi\nindex a7a770f..3243494 100644\n--- a/gcc/doc/extend.texi\n+++ b/gcc/doc/extend.texi\n@@ -6728,6 +6728,7 @@ attributes.\n \n @menu\n * Common Type Attributes::\n+* ARC Type Attributes::\n * ARM Type Attributes::\n * MeP Type Attributes::\n * PowerPC Type Attributes::\n@@ -7161,6 +7162,16 @@ To specify multiple attributes, separate them by commas within the\n double parentheses: for example, @samp{__attribute__ ((aligned (16),\n packed))}.\n \n+@node ARC Type Attributes\n+@subsection ARC Type Attributes\n+\n+@cindex @code{uncached} type attribute, ARC\n+Declaring objects with @code{uncached} allows you to exclude\n+data-cache participation in load and store operations on those objects\n+without involving the additional semantic implications of\n+@code{volatile}.  The @code{.di} instruction suffix is used for all\n+loads and stores of data declared @code{uncached}.\n+\n @node ARM Type Attributes\n @subsection ARM Type Attributes","headers":{"Return-Path":"<gcc-patches-return-466359-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-466359-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"FRsChtBU\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3yXcpJ5kS5z9t5Q\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu,  9 Nov 2017 20:10:47 +1100 (AEDT)","(qmail 9215 invoked by alias); 9 Nov 2017 09:10:40 -0000","(qmail 8787 invoked by uid 89); 9 Nov 2017 09:10:39 -0000","from us01smtprelay-2.synopsys.com (HELO smtprelay.synopsys.com)\n\t(198.182.47.9) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tThu, 09 Nov 2017 09:10:38 +0000","from mailhost.synopsys.com (mailhost1.synopsys.com\n\t[10.12.238.239])\tby smtprelay.synopsys.com (Postfix) with\n\tESMTP id 8439424E0017; Thu,  9 Nov 2017 01:10:36 -0800 (PST)","from mailhost.synopsys.com (localhost [127.0.0.1])\tby\n\tmailhost.synopsys.com (Postfix) with ESMTP id 49466DF9;\n\tThu,  9 Nov 2017 01:10:36 -0800 (PST)","from US01WEHTC2.internal.synopsys.com\n\t(us01wehtc2-vip.internal.synopsys.com [10.12.239.238])\tby\n\tmailhost.synopsys.com (Postfix) with ESMTP id 0193ADF8;\n\tThu,  9 Nov 2017 01:10:35 -0800 (PST)","from DE02WEHTCB.internal.synopsys.com (10.225.19.94) by\n\tUS01WEHTC2.internal.synopsys.com (10.12.239.237) with\n\tMicrosoft SMTP Server (TLS) id 14.3.266.1;\n\tThu, 9 Nov 2017 01:10:35 -0800","from DE02WEMBXA.internal.synopsys.com ([fe80::a014:7216:77d:d55c])\n\tby DE02WEHTCB.internal.synopsys.com ([::1]) with mapi id\n\t14.03.0266.001; Thu, 9 Nov 2017 10:09:38 +0100"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:date:message-id:references:in-reply-to\n\t:content-type:content-transfer-encoding:mime-version; q=dns; s=\n\tdefault; b=ay/mYj52V+WVOWbeRzZDyO6YVz2CbiWqrpP8guWvFU2VPFYu62WPX\n\tUULrAQB4Q6sKewr/IcKqaEWf6hGweHhSRXBG4eTumn9iyRRZstUEbGvrSN4GXWzM\n\trfpXK8OGALqmGrJPUUJVoWe4llIIP1MRKPuv4n9AodXbsrq9IiL0NQ=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:cc:subject:date:message-id:references:in-reply-to\n\t:content-type:content-transfer-encoding:mime-version; s=default;\n\tbh=9Q9qPQEU/hlVsVcLrjruE2aY7nE=; b=FRsChtBUJeYZ1K4MISDd6YNVaT7F\n\tDB+amr/+YkOfBfueIzWzkeH/SgpndnA3B+x/oAnqvmyYStq40S0TPMTx8KPTEdkL\n\tiwHcvAM2xMkswaw0k8ZYrBPlXGD5fXN9LLQc1zDH+eQqH+iKnHwBgg8pObRNKjy4\n\tWJQ74OKUIxnXgzo=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-24.0 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3,\n\tKAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE,\n\tRP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=HX-HELO:sk:smtprel,\n\tHx-languages-length:1273, nios, suited","X-HELO":"smtprelay.synopsys.com","From":"Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>","To":"Sandra Loosemore <sandra@codesourcery.com>,\n\t\"gcc-patches@gcc.gnu.org\"\t<gcc-patches@gcc.gnu.org>","CC":"\"Francois.Bedard@synopsys.com\" <Francois.Bedard@synopsys.com>,\n\t\"andrew.burgess@embecosm.com\" <andrew.burgess@embecosm.com>","Subject":"RE: [PATCH 5/6] [ARC] Add 'uncached' attribute.","Date":"Thu, 9 Nov 2017 09:09:37 +0000","Message-ID":"<098ECE41A0A6114BB2A07F1EC238DE89667B7EE1@de02wembxa.internal.synopsys.com>","References":"<1509625835-22344-1-git-send-email-claziss@synopsys.com>\n\t<1509625835-22344-6-git-send-email-claziss@synopsys.com>\n\t<59FBD3DB.7050507@codesourcery.com>\n\t<098ECE41A0A6114BB2A07F1EC238DE89667B673E@de02wembxa.internal.synopsys.com>\n\t<59FCBBAE.9040500@codesourcery.com>","In-Reply-To":"<59FCBBAE.9040500@codesourcery.com>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0"}},{"id":1848119,"web_url":"http://patchwork.ozlabs.org/comment/1848119/","msgid":"<20180129192554.GA3162@embecosm.com>","list_archive_url":null,"date":"2018-01-29T19:25:54","subject":"Re: [PATCH 5/6] [ARC] Add 'uncached' attribute.","submitter":{"id":65155,"url":"http://patchwork.ozlabs.org/api/people/65155/","name":"Andrew Burgess","email":"andrew.burgess@embecosm.com"},"content":"* Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com> [2017-11-02 13:30:34 +0100]:\n\n> From: claziss <claziss@synopsys.com>\n> \n> The _Uncached type qualifier can be used to bypass the cache without\n> resorting to declaring variables as volatile.\n> \n> gcc/\n> 2017-07-12  Claudiu Zissulescu  <claziss@synopsys.com>\n> \n> \t* config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.\n> \t* config/arc/arc.c (arc_handle_uncached_attribute): New function.\n> \t(arc_attribute_table): Add 'uncached' attribute.\n> \t(arc_print_operand): Print '.di' flag for uncached memory\n> \taccesses.\n> \t(arc_in_small_data_p): Do not consider for small data the uncached\n> \ttypes.\n> \t(arc_is_uncached_mem_p): New function.\n> \t* config/arc/predicates.md (compact_store_memory_operand): Check\n> \tfor uncached memory accesses.\n> \t(nonvol_nonimm_operand): Likewise.\n> \n> gcc/testsuite\n> 2017-07-12  Claudiu Zissulescu  <claziss@synopsys.com>\n\nLooks good, with the updated documentation.\n\nThanks,\nAndrew\n\n\n> \n> \t* gcc.target/arc/uncached.c: New test.\n> ---\n>  gcc/config/arc/arc-protos.h             |  1 +\n>  gcc/config/arc/arc.c                    | 65 ++++++++++++++++++++++++++++++++-\n>  gcc/config/arc/predicates.md            |  7 +++-\n>  gcc/testsuite/gcc.target/arc/uncached.c | 18 +++++++++\n>  4 files changed, 88 insertions(+), 3 deletions(-)\n>  create mode 100644 gcc/testsuite/gcc.target/arc/uncached.c\n> \n> diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h\n> index f8e7937..cc00730 100644\n> --- a/gcc/config/arc/arc-protos.h\n> +++ b/gcc/config/arc/arc-protos.h\n> @@ -47,6 +47,7 @@ extern void arc_expand_compare_and_swap (rtx *);\n>  extern bool compact_memory_operand_p (rtx, machine_mode, bool, bool);\n>  extern int arc_return_address_register (unsigned int);\n>  extern unsigned int arc_compute_function_type (struct function *);\n> +extern bool arc_is_uncached_mem_p (rtx);\n>  #endif /* RTX_CODE */\n>  \n>  extern unsigned int arc_compute_frame_size (int);\n> diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c\n> index 07dd072..a397cbd 100644\n> --- a/gcc/config/arc/arc.c\n> +++ b/gcc/config/arc/arc.c\n> @@ -222,7 +222,7 @@ static tree arc_handle_interrupt_attribute (tree *, tree, tree, int, bool *);\n>  static tree arc_handle_fndecl_attribute (tree *, tree, tree, int, bool *);\n>  static tree arc_handle_jli_attribute (tree *, tree, tree, int, bool *);\n>  static tree arc_handle_secure_attribute (tree *, tree, tree, int, bool *);\n> -\n> +static tree arc_handle_uncached_attribute (tree *, tree, tree, int, bool *);\n>  \n>  /* Initialized arc_attribute_table to NULL since arc doesnot have any\n>     machine specific supported attributes.  */\n> @@ -254,6 +254,9 @@ const struct attribute_spec arc_attribute_table[] =\n>    /* Call a function using secure-mode.  */\n>    { \"secure_call\",  1, 1, false, true, true, arc_handle_secure_attribute,\n>      false },\n> +  /* Bypass caches using .di flag.  */\n> +  { \"uncached\", 0, 0, false, true, false, arc_handle_uncached_attribute,\n> +    false },\n>    { NULL, 0, 0, false, false, false, NULL, false }\n>  };\n>  static int arc_comp_type_attributes (const_tree, const_tree);\n> @@ -4135,7 +4138,8 @@ arc_print_operand (FILE *file, rtx x, int code)\n>  \t refs are defined to use the cache bypass mechanism.  */\n>        if (GET_CODE (x) == MEM)\n>  \t{\n> -\t  if (MEM_VOLATILE_P (x) && !TARGET_VOLATILE_CACHE_SET )\n> +\t  if ((MEM_VOLATILE_P (x) && !TARGET_VOLATILE_CACHE_SET)\n> +\t      || arc_is_uncached_mem_p (x))\n>  \t    fputs (\".di\", file);\n>  \t}\n>        else\n> @@ -8038,6 +8042,7 @@ static bool\n>  arc_in_small_data_p (const_tree decl)\n>  {\n>    HOST_WIDE_INT size;\n> +  tree attr;\n>  \n>    /* Only variables are going into small data area.  */\n>    if (TREE_CODE (decl) != VAR_DECL)\n> @@ -8061,6 +8066,11 @@ arc_in_small_data_p (const_tree decl)\n>        && TREE_THIS_VOLATILE (decl))\n>      return false;\n>  \n> +  /* Likewise for uncached data.  */\n> +  attr = TYPE_ATTRIBUTES (TREE_TYPE (decl));\n> +  if (lookup_attribute (\"uncached\", attr))\n> +    return false;\n> +\n>    if (DECL_SECTION_NAME (decl) != 0)\n>      {\n>        const char *name = DECL_SECTION_NAME (decl);\n> @@ -11066,6 +11076,57 @@ arc_is_secure_call_p (rtx pat)\n>    return false;\n>  }\n>  \n> +/* Handle \"uncached\" qualifier.  */\n> +\n> +static tree\n> +arc_handle_uncached_attribute (tree *node,\n> +\t\t\t       tree name, tree args,\n> +\t\t\t       int flags ATTRIBUTE_UNUSED,\n> +\t\t\t       bool *no_add_attrs)\n> +{\n> +  if (DECL_P (*node) && TREE_CODE (*node) != TYPE_DECL)\n> +    {\n> +      error (\"%qE attribute only applies to types\",\n> +\t     name);\n> +      *no_add_attrs = true;\n> +    }\n> +  else if (args)\n> +    {\n> +      warning (OPT_Wattributes, \"argument of %qE attribute ignored\", name);\n> +    }\n> +  return NULL_TREE;\n> +}\n> +\n> +/* Return TRUE if PAT is a memory addressing an uncached data.  */\n> +\n> +bool\n> +arc_is_uncached_mem_p (rtx pat)\n> +{\n> +  tree attrs;\n> +  tree ttype;\n> +  struct mem_attrs *refattrs;\n> +\n> +  if (!MEM_P (pat))\n> +    return false;\n> +\n> +  /* Get the memory attributes.  */\n> +  refattrs = MEM_ATTRS (pat);\n> +  if (!refattrs\n> +      || !refattrs->expr)\n> +    return false;\n> +\n> +  /* Get the type declaration.  */\n> +  ttype = TREE_TYPE (refattrs->expr);\n> +  if (!ttype)\n> +    return false;\n> +\n> +  /* Get the type attributes.  */\n> +  attrs = TYPE_ATTRIBUTES (ttype);\n> +  if (lookup_attribute (\"uncached\", attrs))\n> +    return true;\n> +  return false;\n> +}\n> +\n>  /* Implement TARGET_USE_ANCHORS_FOR_SYMBOL_P.  We don't want to use\n>     anchors for small data: the GP register acts as an anchor in that\n>     case.  We also don't want to use them for PC-relative accesses,\n> diff --git a/gcc/config/arc/predicates.md b/gcc/config/arc/predicates.md\n> index 3dfe0ca..68887be 100644\n> --- a/gcc/config/arc/predicates.md\n> +++ b/gcc/config/arc/predicates.md\n> @@ -217,6 +217,10 @@\n>    if (MEM_VOLATILE_P (op) && !TARGET_VOLATILE_CACHE_SET)\n>       return 0;\n>  \n> +  /* likewise for uncached types.  */\n> +  if (arc_is_uncached_mem_p (op))\n> +     return 0;\n> +\n>    size = GET_MODE_SIZE (mode);\n>  \n>    /* dword operations really put out 2 instructions, so eliminate them.  */\n> @@ -412,7 +416,8 @@\n>  ;; and only the standard movXX patterns are set up to handle them.\n>  (define_predicate \"nonvol_nonimm_operand\"\n>    (and (match_code \"subreg, reg, mem\")\n> -       (match_test \"(GET_CODE (op) != MEM || !MEM_VOLATILE_P (op)) && nonimmediate_operand (op, mode)\"))\n> +       (match_test \"(GET_CODE (op) != MEM || !MEM_VOLATILE_P (op)) && nonimmediate_operand (op, mode)\")\n> +       (match_test \"!arc_is_uncached_mem_p (op)\"))\n>  )\n>  \n>  ;; Return 1 if OP is a comparison operator valid for the mode of CC.\n> diff --git a/gcc/testsuite/gcc.target/arc/uncached.c b/gcc/testsuite/gcc.target/arc/uncached.c\n> new file mode 100644\n> index 0000000..367e8dc\n> --- /dev/null\n> +++ b/gcc/testsuite/gcc.target/arc/uncached.c\n> @@ -0,0 +1,18 @@\n> +/* { dg-do compile } */\n> +\n> +/* Check 'uncached' type attribute.  */\n> +\n> +typedef volatile unsigned int RwReg  __attribute__ ((uncached));\n> +\n> +typedef struct {\n> +  RwReg UART_THR;\n> +  int SIDE_DISH;\n> +} UART;\n> +\n> +void uart_putc(UART *port, char c)\n> +{\n> +    port->UART_THR = c;\n> +    port->SIDE_DISH = c;\n> +}\n> +\n> +/* { dg-final { scan-assembler-times \"st\\.di\" 1 } } */\n> -- \n> 1.9.1\n>","headers":{"Return-Path":"<gcc-patches-return-472199-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-472199-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"q7zvFq5F\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3zVfcy0jqhz9s71\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 30 Jan 2018 06:26:09 +1100 (AEDT)","(qmail 51848 invoked by alias); 29 Jan 2018 19:26:02 -0000","(qmail 51827 invoked by uid 89); 29 Jan 2018 19:26:00 -0000","from mail-wr0-f194.google.com (HELO mail-wr0-f194.google.com)\n\t(209.85.128.194) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tMon, 29 Jan 2018 19:25:58 +0000","by mail-wr0-f194.google.com with SMTP id 41so7090792wrc.9 for\n\t<gcc-patches@gcc.gnu.org>; Mon, 29 Jan 2018 11:25:58 -0800 (PST)","from localhost (host86-152-213-123.range86-152.btcentralplus.com.\n\t[86.152.213.123]) by smtp.gmail.com with ESMTPSA id\n\ty52sm27873420wrb.52.2018.01.29.11.25.55 (version=TLS1_2\n\tcipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tMon, 29 Jan 2018 11:25:55 -0800 (PST)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:date\n\t:from:to:cc:subject:message-id:references:mime-version\n\t:content-type:in-reply-to; q=dns; s=default; b=guSGXEDDxC2K3v44K\n\t9CjsA1maRuGvjjzzj4sCRXVbv6u7bPibXosJjkRuQsnV4UyTUHuHD0ixmz3hulWM\n\ttY9qD0uYfByLU0qeLVdAIbQL8RIblat6WAcBCA2ID78oe+26viOQEliMJAqteGQS\n\tBL/JQeSKyrZBqY7Q0AbmykWKJg=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:date\n\t:from:to:cc:subject:message-id:references:mime-version\n\t:content-type:in-reply-to; s=default; bh=SXj+tavk6MnvT87oQB/XeMQ\n\tRO9U=; b=q7zvFq5FR5v7EU3mYMbcQzlIXUoMHXoLKLH24nAGQfWFHHc+6zuf+or\n\ts/wSv888EBE7wZp7zO5NUrfTTb18nxb4qr7BbMiKPFrs1dSeCNlZHRsQU2+O0jML\n\tgMOcSS/Fol5E3VncfDHjl2QhPDBODooUkYIKWiSGwQaO1vmJHeNE=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0,\n\tGIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=acts","X-HELO":"mail-wr0-f194.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;\n\ts=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=dEO+k0IRbXZprSiYuFlFrKuqaW2IUPGmYYHc30diGo4=;\n\tb=GZm5hP5J6Cslu1lyPr0jHOqxwoXle9TX1TvESsR+14KK+Wx0YPogU8D6Lm2LlgBJfD\n\tEn2dIyP3DtOO3z9QmHj6TYwvosmvKFgXtDfzY2zBjOqyfbxcvsEPkNAR7NcLk5t2YWZQ\n\tyJQGFSZJI4KfxSGpuFBYNWaId+gnzz/SyAvBdQYoWKa+abfKkrMk5eIMEO0Brq4CrB2k\n\t7/Zv4xaf6XBEhgFWbB4uQuVxOKxDXOLQlNjSZzz4rNr9vp/QJFKvm0ltLzolGRjUej5t\n\tSLkEQRVdIlcXHIBm+bpJNUFdHgzKhXVS5q7gDrPQwuzNRv7SMPc2u2kEHNj/646US8nL\n\tqLiw==","X-Gm-Message-State":"AKwxytcgbVTkvZUFNTz8TDtuo262RgMrK9LiyFQUbAzqFsVUpyUpoprP\tsDwK2FzfJIgfBxh7lCwiOsw8/Q==","X-Google-Smtp-Source":"AH8x227qgG8vJujq9hQ0fVBjdrTWPSpcemviITPHBQxsodxLW2EKDMOHTCHTJZMjhYyuu7dAVMK4nQ==","X-Received":"by 10.223.169.213 with SMTP id b79mr20719262wrd.86.1517253956659;\n\tMon, 29 Jan 2018 11:25:56 -0800 (PST)","Date":"Mon, 29 Jan 2018 19:25:54 +0000","From":"Andrew Burgess <andrew.burgess@embecosm.com>","To":"Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>","Cc":"gcc-patches@gcc.gnu.org, Francois.Bedard@synopsys.com","Subject":"Re: [PATCH 5/6] [ARC] Add 'uncached' attribute.","Message-ID":"<20180129192554.GA3162@embecosm.com>","References":"<1509625835-22344-1-git-send-email-claziss@synopsys.com>\n\t<1509625835-22344-6-git-send-email-claziss@synopsys.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<1509625835-22344-6-git-send-email-claziss@synopsys.com>","X-Editor":"GNU Emacs [ http://www.gnu.org/software/emacs ]","User-Agent":"Mutt/1.9.1 (2017-09-22)","X-IsSubscribed":"yes"}}]