[{"id":1759978,"web_url":"http://patchwork.ozlabs.org/comment/1759978/","msgid":"<CAFiYyc3PeF45zcDp0oeRFtozxYs9gcVf0Nn8ZNyO2JBpgm92Ag@mail.gmail.com>","list_archive_url":null,"date":"2017-08-30T09:18:02","subject":"Re: [PATCH] Fix IPA ICF with ASM statements (PR inline-asm/82001).","submitter":{"id":1765,"url":"http://patchwork.ozlabs.org/api/people/1765/","name":"Richard Biener","email":"richard.guenther@gmail.com"},"content":"On Wed, Aug 30, 2017 at 11:12 AM, Martin Liška <mliska@suse.cz> wrote:\n> Hi.\n>\n> Following patch compares also constraints of input and output operands of ASM statements.\n> Patch can bootstrap on ppc64le-redhat-linux and survives regression tests.\n>\n> Ready to be installed?\n\nIt's now no longer \"compare_tree_list_operand\" but compare_asm_constraint\nwhere there's no need to walk TREE_CHAIN either.\n\nSo can you refactor this a bit?\n\n> Martin\n>\n> gcc/ChangeLog:\n>\n> 2017-08-28  Martin Liska  <mliska@suse.cz>\n>\n>         PR inline-asm/82001\n>         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):\n>         Compare TREE_PURPOSE of asm inputs and outputs.\n>\n> gcc/testsuite/ChangeLog:\n>\n> 2017-08-28  Martin Liska  <mliska@suse.cz>\n>\n>         PR inline-asm/82001\n>         * gcc.dg/ipa/pr82001.c: New test.\n> ---\n>  gcc/ipa-icf-gimple.c               | 10 ++++++++++\n>  gcc/testsuite/gcc.dg/ipa/pr82001.c | 21 +++++++++++++++++++++\n>  2 files changed, 31 insertions(+)\n>  create mode 100644 gcc/testsuite/gcc.dg/ipa/pr82001.c\n>\n>","headers":{"Return-Path":"<gcc-patches-return-461140-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-461140-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=\"ECG8ZcBR\"; 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 3xj0Kl0Y3wz9t2R\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 19:18:17 +1000 (AEST)","(qmail 91501 invoked by alias); 30 Aug 2017 09:18:10 -0000","(qmail 91458 invoked by uid 89); 30 Aug 2017 09:18:09 -0000","from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com)\n\t(74.125.82.68) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 30 Aug 2017 09:18:05 +0000","by mail-wm0-f68.google.com with SMTP id e204so1116916wma.2 for\n\t<gcc-patches@gcc.gnu.org>; Wed, 30 Aug 2017 02:18:04 -0700 (PDT)","by 10.80.180.249 with HTTP; Wed, 30 Aug 2017 02:18:02 -0700 (PDT)"],"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:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=Fp9frO0jPb15vOrOYCW1AzgiVS44fX1ByncoKmoe1Jc5Z5Wj9IHfX\n\tgY3y3CkS1aJylhbiycbxXBcwjyyfVt++NkpUJvkJW8rIZqS4K5rW6hu34CGIBPZk\n\tdlz+6lk8njWDIzuzY4Rj/E9G1eiog1UFiAdTQKLdjSSrmjFQSeZiZ4=","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:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type:content-transfer-encoding; s=\n\tdefault; bh=PNwCz6FaKuvZUKTtW1vPmmmPOq4=; b=ECG8ZcBRjjJXM2DkWeQJ\n\tjwKk2wbgLljFOCkpzSdEC19aMHfHyhNzhZGglqm7wApiToO2fb0w6Wu0j+HSA8VV\n\trBoeOiXlSoXSkgncyIs9C+VFN2uJE9AclDuxkT0SRhNKUVkGU0QD7adiQzCU/bCF\n\tOTNzhXY85kE0Zv1IYmdvNTA=","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=-10.5 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tRCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2\n\tspammy=Hx-spam-relays-external:74.125.82.68, H*RU:74.125.82.68","X-HELO":"mail-wm0-f68.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:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc:content-transfer-encoding;\n\tbh=yMLzYCV/mxCjUl8pi6kyvKnlqtxesMdKB8WlFBxfDZM=;\n\tb=QyjmPfBpM/gWRVF53pd/ZNus2KmlRE999sKUC6jLAWrULohkotHDISsfbZ8yjcG4XV\n\tWu78dbxPt9ww54OMFxYP8loD4YNaWa4T9raPeOnhkKDGScOgUADpQDruUSHLBZ6UagNl\n\tjS4viwggaoZjrOQAGvS1fNLMTV+pD9BnTdVzeHKRIoC1a7Kz9HZA2Q1pC4AavJ/bsEUi\n\tjYYJ9mmrGtcQp11ZH1QgEVUqq5A1t3RKb4jNJmG3+/fICwUn/tVbwj+nkppTY0bgpzWw\n\tdlrDTCwmxv1QqW1uyHDsEPO9P0vX40cjiaQffeIvRQ4OoNI4M4eifZLpSlkXfvjAHMVG\n\t8H9w==","X-Gm-Message-State":"AHYfb5gT2bJLCYjSL82DbQJXQNFdJw9OFdewtZvCwGJUcV5H+hX/keEg\tac7gW/hL1FDZKAApufY0sX/zphna6xIp","X-Received":"by 10.80.240.10 with SMTP id r10mr1246803edl.148.1504084683091;\n\tWed, 30 Aug 2017 02:18:03 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<ac6fe8f6-5e16-1a5f-ae1b-193a50f03065@suse.cz>","References":"<ac6fe8f6-5e16-1a5f-ae1b-193a50f03065@suse.cz>","From":"Richard Biener <richard.guenther@gmail.com>","Date":"Wed, 30 Aug 2017 11:18:02 +0200","Message-ID":"<CAFiYyc3PeF45zcDp0oeRFtozxYs9gcVf0Nn8ZNyO2JBpgm92Ag@mail.gmail.com>","Subject":"Re: [PATCH] Fix IPA ICF with ASM statements (PR inline-asm/82001).","To":"=?utf-8?q?Martin_Li=C5=A1ka?= <mliska@suse.cz>","Cc":"GCC Patches <gcc-patches@gcc.gnu.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-IsSubscribed":"yes"}},{"id":1760024,"web_url":"http://patchwork.ozlabs.org/comment/1760024/","msgid":"<3945dc16-16de-bcba-8231-44557d78948e@suse.cz>","list_archive_url":null,"date":"2017-08-30T10:17:53","subject":"Re: [PATCH] Fix IPA ICF with ASM statements (PR inline-asm/82001).","submitter":{"id":62010,"url":"http://patchwork.ozlabs.org/api/people/62010/","name":"Martin Liška","email":"mliska@suse.cz"},"content":"On 08/30/2017 11:18 AM, Richard Biener wrote:\n> On Wed, Aug 30, 2017 at 11:12 AM, Martin Liška <mliska@suse.cz> wrote:\n>> Hi.\n>>\n>> Following patch compares also constraints of input and output operands of ASM statements.\n>> Patch can bootstrap on ppc64le-redhat-linux and survives regression tests.\n>>\n>> Ready to be installed?\n> \n> It's now no longer \"compare_tree_list_operand\" but compare_asm_constraint\n> where there's no need to walk TREE_CHAIN either.\n\nYep, it desires a refactoring.\n\nIs it fine for trunk?\n\nMartin\n\n> \n> So can you refactor this a bit?\n> \n>> Martin\n>>\n>> gcc/ChangeLog:\n>>\n>> 2017-08-28  Martin Liska  <mliska@suse.cz>\n>>\n>>         PR inline-asm/82001\n>>         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):\n>>         Compare TREE_PURPOSE of asm inputs and outputs.\n>>\n>> gcc/testsuite/ChangeLog:\n>>\n>> 2017-08-28  Martin Liska  <mliska@suse.cz>\n>>\n>>         PR inline-asm/82001\n>>         * gcc.dg/ipa/pr82001.c: New test.\n>> ---\n>>  gcc/ipa-icf-gimple.c               | 10 ++++++++++\n>>  gcc/testsuite/gcc.dg/ipa/pr82001.c | 21 +++++++++++++++++++++\n>>  2 files changed, 31 insertions(+)\n>>  create mode 100644 gcc/testsuite/gcc.dg/ipa/pr82001.c\n>>\n>>\nFrom dbbbf807a5721cb14da95fddbfe9afc32cd60ce7 Mon Sep 17 00:00:00 2001\nFrom: marxin <mliska@suse.cz>\nDate: Mon, 28 Aug 2017 13:57:07 +0200\nSubject: [PATCH] Fix IPA ICF with ASM statements (PR inline-asm/82001).\n\ngcc/ChangeLog:\n\n2017-08-28  Martin Liska  <mliska@suse.cz>\n\n\tPR inline-asm/82001\n\t* ipa-icf-gimple.c (func_checker::compare_tree_list_operand):\n\tRename to ...\n\t(func_checker::compare_asm_inputs_outputs): ... this function.\n\t(func_checker::compare_gimple_asm): Use the function to compare\n\talso ASM constrains.\n\t* ipa-icf-gimple.h: Rename the function.\n\ngcc/testsuite/ChangeLog:\n\n2017-08-28  Martin Liska  <mliska@suse.cz>\n\n\tPR inline-asm/82001\n\t* gcc.dg/ipa/pr82001.c: New test.\n---\n gcc/ipa-icf-gimple.c               | 19 +++++++++++++------\n gcc/ipa-icf-gimple.h               |  6 +++---\n gcc/testsuite/gcc.dg/ipa/pr82001.c | 21 +++++++++++++++++++++\n 3 files changed, 37 insertions(+), 9 deletions(-)\n create mode 100644 gcc/testsuite/gcc.dg/ipa/pr82001.c\n\ndiff --git a/gcc/ipa-icf-gimple.c b/gcc/ipa-icf-gimple.c\nindex f44a995f580..b40dd8653b4 100644\n--- a/gcc/ipa-icf-gimple.c\n+++ b/gcc/ipa-icf-gimple.c\n@@ -543,11 +543,8 @@ func_checker::compare_operand (tree t1, tree t2)\n     }\n }\n \n-/* Compares two tree list operands T1 and T2 and returns true if these\n-   two trees are semantically equivalent.  */\n-\n bool\n-func_checker::compare_tree_list_operand (tree t1, tree t2)\n+func_checker::compare_asm_inputs_outputs (tree t1, tree t2)\n {\n   gcc_assert (TREE_CODE (t1) == TREE_LIST);\n   gcc_assert (TREE_CODE (t2) == TREE_LIST);\n@@ -560,6 +557,16 @@ func_checker::compare_tree_list_operand (tree t1, tree t2)\n       if (!compare_operand (TREE_VALUE (t1), TREE_VALUE (t2)))\n \treturn return_false ();\n \n+      tree p1 = TREE_PURPOSE (t1);\n+      tree p2 = TREE_PURPOSE (t2);\n+\n+      gcc_assert (TREE_CODE (p1) == TREE_LIST);\n+      gcc_assert (TREE_CODE (p2) == TREE_LIST);\n+\n+      if (strcmp (TREE_STRING_POINTER (TREE_VALUE (p1)),\n+\t\t  TREE_STRING_POINTER (TREE_VALUE (p2))) != 0)\n+\treturn return_false ();\n+\n       t2 = TREE_CHAIN (t2);\n     }\n \n@@ -1008,7 +1015,7 @@ func_checker::compare_gimple_asm (const gasm *g1, const gasm *g2)\n       tree input1 = gimple_asm_input_op (g1, i);\n       tree input2 = gimple_asm_input_op (g2, i);\n \n-      if (!compare_tree_list_operand (input1, input2))\n+      if (!compare_asm_inputs_outputs (input1, input2))\n \treturn return_false_with_msg (\"ASM input is different\");\n     }\n \n@@ -1017,7 +1024,7 @@ func_checker::compare_gimple_asm (const gasm *g1, const gasm *g2)\n       tree output1 = gimple_asm_output_op (g1, i);\n       tree output2 = gimple_asm_output_op (g2, i);\n \n-      if (!compare_tree_list_operand (output1, output2))\n+      if (!compare_asm_inputs_outputs (output1, output2))\n \treturn return_false_with_msg (\"ASM output is different\");\n     }\n \ndiff --git a/gcc/ipa-icf-gimple.h b/gcc/ipa-icf-gimple.h\nindex da904b5897e..7e69024165f 100644\n--- a/gcc/ipa-icf-gimple.h\n+++ b/gcc/ipa-icf-gimple.h\n@@ -215,9 +215,9 @@ public:\n      is returned.  */\n   bool compare_operand (tree t1, tree t2);\n \n-  /* Compares two tree list operands T1 and T2 and returns true if these\n-     two trees are semantically equivalent.  */\n-  bool compare_tree_list_operand (tree t1, tree t2);\n+  /* Compares GIMPLE ASM inputs (or outputs) where we iterate tree chain\n+     and compare both TREE_PURPOSEs and TREE_VALUEs.  */\n+  bool compare_asm_inputs_outputs (tree t1, tree t2);\n \n   /* Verifies that trees T1 and T2, representing function declarations\n      are equivalent from perspective of ICF.  */\ndiff --git a/gcc/testsuite/gcc.dg/ipa/pr82001.c b/gcc/testsuite/gcc.dg/ipa/pr82001.c\nnew file mode 100644\nindex 00000000000..05e32b10ef5\n--- /dev/null\n+++ b/gcc/testsuite/gcc.dg/ipa/pr82001.c\n@@ -0,0 +1,21 @@\n+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */\n+/* { dg-options \"-O2 -fdump-ipa-icf-details\"  } */\n+\n+int\n+mullo (int a, int b)\n+{\n+  asm(\"mul %%edx   # %%1 was %1\"\n+      : \"+\"\n+\t\"a\"(a),\n+\t\"+d\"(b));\n+  return a;\n+}\n+\n+int\n+mulhi (int a, int b)\n+{\n+  asm(\"mul %%edx   # %%1 was %1\" : \"+d\"(a), \"+a\"(b));\n+  return a;\n+}\n+\n+/* { dg-final { scan-ipa-dump \"Equal symbols: 0\" \"icf\"  } } */","headers":{"Return-Path":"<gcc-patches-return-461146-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-461146-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=\"dBonb5Do\"; 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 3xj1fq3V3cz9t0F\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 20:18:08 +1000 (AEST)","(qmail 22015 invoked by alias); 30 Aug 2017 10:18:00 -0000","(qmail 21963 invoked by uid 89); 30 Aug 2017 10:17:59 -0000","from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 30 Aug 2017 10:17:56 +0000","from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254])\tby\n\tmx1.suse.de (Postfix) with ESMTP id 0CB81ABB8;\n\tWed, 30 Aug 2017 10:17:54 +0000 (UTC)"],"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:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type; q=dns; s=default; b=mgVgjCuuLZFwyj9S3\n\tkzAk4EIDehIo1lccPXtg+Pa6949Cs0GvMM7H0m3lnW99PtZjRpTJ9tz8I+aSonyt\n\tn32MUaUwHYyA02PbjL5Z7N2n98UvN0iVJg6Vq7xbkoNoZNzIp+qUs1hEOdO49BQ0\n\tUEqLy+CxZFH50jZq8sUMoFh+PI=","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:cc:references:from:message-id:date:mime-version\n\t:in-reply-to:content-type; s=default; bh=b5C3jNVKc4dUIuy+O4oT3e0\n\tsd7E=; b=dBonb5DoiHWUUwewFefA3JUnldhRqSed+cQNP2pBaVyfY/YlP9sdnMF\n\tve3rJyQ+TSrC2jYcfQGppoCtCfhcSLw1Sec2gP66FvoglCZvFrvtFC1cchskMTSx\n\tjjv4fwAlqfIQBrR2ruM74kcjc0G8wI+CYIUUzOMSTLBrKnSgJeSo=","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,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=desires","X-HELO":"mx1.suse.de","Subject":"Re: [PATCH] Fix IPA ICF with ASM statements (PR inline-asm/82001).","To":"Richard Biener <richard.guenther@gmail.com>","Cc":"GCC Patches <gcc-patches@gcc.gnu.org>","References":"<ac6fe8f6-5e16-1a5f-ae1b-193a50f03065@suse.cz>\n\t<CAFiYyc3PeF45zcDp0oeRFtozxYs9gcVf0Nn8ZNyO2JBpgm92Ag@mail.gmail.com>","From":"=?utf-8?q?Martin_Li=C5=A1ka?= <mliska@suse.cz>","Message-ID":"<3945dc16-16de-bcba-8231-44557d78948e@suse.cz>","Date":"Wed, 30 Aug 2017 12:17:53 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:52.0) Gecko/20100101 Thunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<CAFiYyc3PeF45zcDp0oeRFtozxYs9gcVf0Nn8ZNyO2JBpgm92Ag@mail.gmail.com>","Content-Type":"multipart/mixed;\n\tboundary=\"------------EDEB0A143B639D2F0B0FBB47\"","X-IsSubscribed":"yes"}},{"id":1760117,"web_url":"http://patchwork.ozlabs.org/comment/1760117/","msgid":"<CAFiYyc1KzEtEQXo=1YZDefuK8Bv5MJhq_WNYhseqthshz7s+8A@mail.gmail.com>","list_archive_url":null,"date":"2017-08-30T12:32:04","subject":"Re: [PATCH] Fix IPA ICF with ASM statements (PR inline-asm/82001).","submitter":{"id":1765,"url":"http://patchwork.ozlabs.org/api/people/1765/","name":"Richard Biener","email":"richard.guenther@gmail.com"},"content":"On Wed, Aug 30, 2017 at 12:17 PM, Martin Liška <mliska@suse.cz> wrote:\n> On 08/30/2017 11:18 AM, Richard Biener wrote:\n>> On Wed, Aug 30, 2017 at 11:12 AM, Martin Liška <mliska@suse.cz> wrote:\n>>> Hi.\n>>>\n>>> Following patch compares also constraints of input and output operands of ASM statements.\n>>> Patch can bootstrap on ppc64le-redhat-linux and survives regression tests.\n>>>\n>>> Ready to be installed?\n>>\n>> It's now no longer \"compare_tree_list_operand\" but compare_asm_constraint\n>> where there's no need to walk TREE_CHAIN either.\n>\n> Yep, it desires a refactoring.\n>\n> Is it fine for trunk?\n\nOk.\n\nRichard.\n\n> Martin\n>\n>>\n>> So can you refactor this a bit?\n>>\n>>> Martin\n>>>\n>>> gcc/ChangeLog:\n>>>\n>>> 2017-08-28  Martin Liska  <mliska@suse.cz>\n>>>\n>>>         PR inline-asm/82001\n>>>         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):\n>>>         Compare TREE_PURPOSE of asm inputs and outputs.\n>>>\n>>> gcc/testsuite/ChangeLog:\n>>>\n>>> 2017-08-28  Martin Liska  <mliska@suse.cz>\n>>>\n>>>         PR inline-asm/82001\n>>>         * gcc.dg/ipa/pr82001.c: New test.\n>>> ---\n>>>  gcc/ipa-icf-gimple.c               | 10 ++++++++++\n>>>  gcc/testsuite/gcc.dg/ipa/pr82001.c | 21 +++++++++++++++++++++\n>>>  2 files changed, 31 insertions(+)\n>>>  create mode 100644 gcc/testsuite/gcc.dg/ipa/pr82001.c\n>>>\n>>>\n>","headers":{"Return-Path":"<gcc-patches-return-461157-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-461157-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=\"Cged6MQ7\"; 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 3xj4db53B3z9sN5\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 22:32:17 +1000 (AEST)","(qmail 120743 invoked by alias); 30 Aug 2017 12:32:09 -0000","(qmail 120674 invoked by uid 89); 30 Aug 2017 12:32:08 -0000","from mail-wm0-f66.google.com (HELO mail-wm0-f66.google.com)\n\t(74.125.82.66) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 30 Aug 2017 12:32:07 +0000","by mail-wm0-f66.google.com with SMTP id x189so1624660wmg.4 for\n\t<gcc-patches@gcc.gnu.org>; Wed, 30 Aug 2017 05:32:06 -0700 (PDT)","by 10.80.180.249 with HTTP; Wed, 30 Aug 2017 05:32:04 -0700 (PDT)"],"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:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type:content-transfer-encoding; q=dns; s=\n\tdefault; b=Jy2COKQrYQSezngMNL5N+kSPBt3vKKba20O75s5mJTRysgd3h68Hq\n\txnP3cRbMLMG3j4j2kBM8aDV9wSx3Jjt3ZFRsylT/y30G50hTL0x0gUkDBuGOXi05\n\t0JUSJf9a2WxIy5ctIOT/v/8Z76U1mvFhH2LXlghLpuSrPGkzHiL2eY=","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:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:cc:content-type:content-transfer-encoding; s=\n\tdefault; bh=fD0f0qC4dKHKOLq5t3RBNdBFcNk=; b=Cged6MQ79PCPzgtyEKUJ\n\tSU6Ilzec0gkyE36Bx/F7ZwKeDtEHC2PMS/LUB802OLIG44e5uoHMnBPbBds8nalY\n\toOVgrFrBmQn2u6CJGyl2Rv0fOf1l6bjwEtvppnsVFxn6mxUiOnc28PjgBlRk87qv\n\tl+lLdoTf5a8e/9ONgLG0CeU=","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=-10.5 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tRCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2\n\tspammy=Hx-spam-relays-external:74.125.82.66, H*RU:74.125.82.66","X-HELO":"mail-wm0-f66.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:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:cc:content-transfer-encoding;\n\tbh=EzR/O0EZxAccT8oVtkX24BBCFUOmWSpjlMIP9q7zhIQ=;\n\tb=rNk/ADbLP8ZPLYdMnx9/CRvQijXp93HvqG6iVfNZrkAIM6CiV60/NDfDsWlqqhgUov\n\t1irPMdnvyCzZXn0149e/TJkVwDqqA/xo4mx2hHBoqKBXazOlsddwL2ZlpOWEQ2Z6bkU8\n\tVLbxRxxgoBOoUPwVnhyu4xY3K4Nm/u40Q5YZ5X2zrUh6DlwfYE2GUbwvkgeV96/7J4Wj\n\t/RkbXcXKHeTktYNe1VB2dTIfFXUC9W0/qkckF/faHb1CNdifFWZkO+FXlEoD0WvXeY7F\n\t70VJAHGXibUnjOdpDri+vVWJv5sh9/A5wDFMpHbJp70ZZrLHt7xqUdakyVvsPNO12V1y\n\tuoPQ==","X-Gm-Message-State":"AHYfb5jMFymvXvGtUb18uRPnCHsIZxWa/hu/wtGeymjlPJIPO4iFnXbD\t5GLM5jTyY1KrCQqULUgtwaGOGgiX2u3W","X-Received":"by 10.80.240.10 with SMTP id r10mr1716031edl.148.1504096325061;\n\tWed, 30 Aug 2017 05:32:05 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<3945dc16-16de-bcba-8231-44557d78948e@suse.cz>","References":"<ac6fe8f6-5e16-1a5f-ae1b-193a50f03065@suse.cz>\n\t<CAFiYyc3PeF45zcDp0oeRFtozxYs9gcVf0Nn8ZNyO2JBpgm92Ag@mail.gmail.com>\n\t<3945dc16-16de-bcba-8231-44557d78948e@suse.cz>","From":"Richard Biener <richard.guenther@gmail.com>","Date":"Wed, 30 Aug 2017 14:32:04 +0200","Message-ID":"<CAFiYyc1KzEtEQXo=1YZDefuK8Bv5MJhq_WNYhseqthshz7s+8A@mail.gmail.com>","Subject":"Re: [PATCH] Fix IPA ICF with ASM statements (PR inline-asm/82001).","To":"=?utf-8?q?Martin_Li=C5=A1ka?= <mliska@suse.cz>","Cc":"GCC Patches <gcc-patches@gcc.gnu.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-IsSubscribed":"yes"}}]