[{"id":1766197,"web_url":"http://patchwork.ozlabs.org/comment/1766197/","msgid":"<2CC301AB-1A42-43D2-9741-CB4792EFA622@gmail.com>","list_archive_url":null,"date":"2017-09-11T10:11:29","subject":"Re: [HSA, PR 82119] Make HSA resilient to side-effects of split_edge","submitter":{"id":1765,"url":"http://patchwork.ozlabs.org/api/people/1765/","name":"Richard Biener","email":"richard.guenther@gmail.com"},"content":"On September 11, 2017 11:03:39 AM GMT+02:00, Martin Jambor <mjambor@suse.cz> wrote:\n>Hi,\n>\n>in r251264 the code of split_edge was changed not to reallocate PHI\n>vectors, but it reorders them along with the order of incoming edges\n>to the BB.  There are two places in the HSA BE where we call\n>split_edge while iterating over PHI node arguments and those broke,\n>resulting in a number of libgomp testsuite failures.\n\nAh, interesting. I'll try to change split_edge to not reorder PHI arguments. \n\nRichard. \n\n>Fixed thusly.  I have tested the patch on HSA capable APU and also did\n>full bootstrap and testing, I will commit in a few moments.\n>\n>Martin\n>\n>\n>2017-09-11  Martin Jambor  <mjambor@suse.cz>\n>\n>\tPR hsa/82119\n>\t* hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in\n>\targuments in advance.\n>\t* hsa-regalloc.c (naive_process_phi): New parameter predecessors,\n>\tuse it to find predecessor edges.\n>\t(naive_outof_ssa): Collect vector of predecessors.\n>---\n>gcc/hsa-gen.c      | 51\n>++++++++++++++++++++++++++++++++++++++-------------\n> gcc/hsa-regalloc.c | 14 +++++++++++---\n> 2 files changed, 49 insertions(+), 16 deletions(-)\n>\n>diff --git a/gcc/hsa-gen.c b/gcc/hsa-gen.c\n>index bd227626e83..6e054c0ce82 100644\n>--- a/gcc/hsa-gen.c\n>+++ b/gcc/hsa-gen.c\n>@@ -5657,8 +5657,37 @@ gen_hsa_phi_from_gimple_phi (gimple *phi_stmt,\n>hsa_bb *hbb)\n>   hphi = new hsa_insn_phi (count, dest);\n>   hphi->m_bb = hbb->m_bb;\n> \n>-  tree lhs = gimple_phi_result (phi_stmt);\n>+  auto_vec <tree, 8> aexprs;\n>+  auto_vec <hsa_op_reg *, 8> aregs;\n>+\n>+  /* Calling split_edge when processing a PHI node messes up with the\n>order of\n>+     gimple phi node arguments (it moves the one associated with the\n>edge to\n>+     the end).  We need to keep the order of edges and arguments of\n>HSA phi\n>+     node arguments consistent, so we do all required splitting as the\n>first\n>+     step, and in reverse order as to not be affected by the\n>re-orderings.  */\n>+  for (unsigned j = count; j != 0; j--)\n>+    {\n>+      unsigned i = j - 1;\n>+      tree op = gimple_phi_arg_def (phi_stmt, i);\n>+      if (TREE_CODE (op) != ADDR_EXPR)\n>+\tcontinue;\n> \n>+      edge e = gimple_phi_arg_edge (as_a <gphi *> (phi_stmt), i);\n>+      hsa_bb *hbb_src = hsa_init_new_bb (split_edge (e));\n>+      hsa_op_address *addr = gen_hsa_addr (TREE_OPERAND (op, 0),\n>+\t\t\t\t\t   hbb_src);\n>+\n>+      hsa_op_reg *dest\n>+\t= new hsa_op_reg (hsa_get_segment_addr_type (BRIG_SEGMENT_FLAT));\n>+      hsa_insn_basic *insn\n>+\t= new hsa_insn_basic (2, BRIG_OPCODE_LDA, BRIG_TYPE_U64,\n>+\t\t\t      dest, addr);\n>+      hbb_src->append_insn (insn);\n>+      aexprs.safe_push (op);\n>+      aregs.safe_push (dest);\n>+    }\n>+\n>+  tree lhs = gimple_phi_result (phi_stmt);\n>   for (unsigned i = 0; i < count; i++)\n>     {\n>       tree op = gimple_phi_arg_def (phi_stmt, i);\n>@@ -5684,18 +5713,14 @@ gen_hsa_phi_from_gimple_phi (gimple *phi_stmt,\n>hsa_bb *hbb)\n> \t    }\n> \t  else if (TREE_CODE (op) == ADDR_EXPR)\n> \t    {\n>-\t      edge e = gimple_phi_arg_edge (as_a <gphi *> (phi_stmt), i);\n>-\t      hsa_bb *hbb_src = hsa_init_new_bb (split_edge (e));\n>-\t      hsa_op_address *addr = gen_hsa_addr (TREE_OPERAND (op, 0),\n>-\t\t\t\t\t\t   hbb_src);\n>-\n>-\t      hsa_op_reg *dest\n>-\t\t= new hsa_op_reg (hsa_get_segment_addr_type (BRIG_SEGMENT_FLAT));\n>-\t      hsa_insn_basic *insn\n>-\t\t= new hsa_insn_basic (2, BRIG_OPCODE_LDA, BRIG_TYPE_U64,\n>-\t\t\t\t      dest, addr);\n>-\t      hbb_src->append_insn (insn);\n>-\n>+\t      hsa_op_reg *dest = NULL;\n>+\t      for (unsigned a_idx = 0; a_idx < aexprs.length (); a_idx++)\n>+\t\tif (aexprs[a_idx] == op)\n>+\t\t  {\n>+\t\t    dest = aregs[a_idx];\n>+\t\t    break;\n>+\t\t  }\n>+\t      gcc_assert (dest);\n> \t      hphi->set_op (i, dest);\n> \t    }\n> \t  else\n>diff --git a/gcc/hsa-regalloc.c b/gcc/hsa-regalloc.c\n>index 2a17254c3b2..7fc3a8afa3d 100644\n>--- a/gcc/hsa-regalloc.c\n>+++ b/gcc/hsa-regalloc.c\n>@@ -42,7 +42,7 @@ along with GCC; see the file COPYING3.  If not see\n>/* Process a PHI node PHI of basic block BB as a part of naive\n>out-f-ssa.  */\n> \n> static void\n>-naive_process_phi (hsa_insn_phi *phi)\n>+naive_process_phi (hsa_insn_phi *phi, const vec<edge> &predecessors)\n> {\n>   unsigned count = phi->operand_count ();\n>   for (unsigned i = 0; i < count; i++)\n>@@ -55,7 +55,7 @@ naive_process_phi (hsa_insn_phi *phi)\n>       if (!op)\n> \tbreak;\n> \n>-      e = EDGE_PRED (phi->m_bb, i);\n>+      e = predecessors[i];\n>       if (single_succ_p (e->src))\n> \thbb = hsa_bb_for_bb (e->src);\n>       else\n>@@ -89,10 +89,18 @@ naive_outof_ssa (void)\n>     hsa_bb *hbb = hsa_bb_for_bb (bb);\n>     hsa_insn_phi *phi;\n> \n>+    /* naive_process_phi can call split_edge on an incoming edge which\n>order if\n>+       the incoming edges to the basic block and thus make it\n>inconsistent with\n>+       the ordering of PHI arguments, so we collect them in advance. \n>*/\n>+    auto_vec<edge, 8> predecessors;\n>+    unsigned pred_count = EDGE_COUNT (bb->preds);\n>+    for (unsigned i = 0; i < pred_count; i++)\n>+      predecessors.safe_push (EDGE_PRED (bb, i));\n>+\n>     for (phi = hbb->m_first_phi;\n> \t phi;\n> \t phi = phi->m_next ? as_a <hsa_insn_phi *> (phi->m_next) : NULL)\n>-      naive_process_phi (phi);\n>+      naive_process_phi (phi, predecessors);\n> \n>/* Zap PHI nodes, they will be deallocated when everything else will. \n>*/\n>     hbb->m_first_phi = NULL;","headers":{"Return-Path":"<gcc-patches-return-461802-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-461802-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=\"CKB7pwS6\"; 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 3xrNxw0NnVz9s7M\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 11 Sep 2017 20:11:45 +1000 (AEST)","(qmail 36971 invoked by alias); 11 Sep 2017 10:11:36 -0000","(qmail 36957 invoked by uid 89); 11 Sep 2017 10:11:35 -0000","from mail-wm0-f49.google.com (HELO mail-wm0-f49.google.com)\n\t(74.125.82.49) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tMon, 11 Sep 2017 10:11:34 +0000","by mail-wm0-f49.google.com with SMTP id f199so35732389wme.0 for\n\t<gcc-patches@gcc.gnu.org>; Mon, 11 Sep 2017 03:11:33 -0700 (PDT)","from android-97b5c0ce9bfced28.fritz.box\n\t(p5494E583.dip0.t-ipconnect.de. [84.148.229.131]) by\n\tsmtp.gmail.com with ESMTPSA id\n\t138sm4926358wmf.23.2017.09.11.03.11.30 (version=TLS1_2\n\tcipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tMon, 11 Sep 2017 03:11:30 -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:date\n\t:in-reply-to:references:mime-version:content-type\n\t:content-transfer-encoding:subject:to:from:message-id; q=dns; s=\n\tdefault; b=LFlBh6kLEG9cDM12y8RyTOTGW+ledJ6uUx8AXUqUS5f/x/xYh4Zp+\n\tZKEJVzyOT6kE18GTCPGANOnvEgbljcUBHkgyiOKcPKNborJ0h08nS6GCPJOQ6yfJ\n\tQ+mW3ibM8Hjoeq0EIro1iHt1V9pi0Frwmg9JttkrdVW49aIeVmgvc4=","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:in-reply-to:references:mime-version:content-type\n\t:content-transfer-encoding:subject:to:from:message-id; s=\n\tdefault; bh=0zP6ZQUX6/d54DE0cX1MxDXIbr4=; b=CKB7pwS6J/wt2+Hf6Vl6\n\tOeJIb2J9kiA+Ksuix8MHh2VT+K0ZB+gxZ5P/XaQ8x6Tma6pRP3J6sSdLrFhabkY3\n\tBGE6C3nIjGzAJj92jXBZjFjgwXjZ92EOohJ+8xsXmKj8sfdMfkwldBI9z+VWHXo+\n\tfRi8pjeEtrtWwQ4XYui1+1U=","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.8 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2,\n\tGIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=HX-Received:10.28.213.21","X-HELO":"mail-wm0-f49.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:user-agent:in-reply-to:references\n\t:mime-version:content-transfer-encoding:subject:to:from:message-id;\n\tbh=gl5NRzC5l8E/ZeNMH0BYGVEY7GCafAmy85Dz/yGUJWs=;\n\tb=UY8kmfJ8PZ0DctxB2PEU+JmAfCSBNs2SfB33ZHo3WUIqKA4VVA/6fy7jiwLA/tJIer\n\t2VohhPQCnGJ1UeS9XfedFs000p/txEsyzLrj5j9XIscmoCjGzlMI5/FwIcUQu1vcXdbd\n\tKNmnoyia4Zz2WS/GlMqFREngc9j4c4NbKIv++sRG4crqOSU+Z3U9FfP9KmZ/F99rxdIc\n\tHjCIcjZslL5wzbFM9RNo6VMiEhWiDxSoMtzxEC1NKyNlU9CKVwVrW6aetJiC9V3H5yR3\n\tVW579794nTUaL9nbaA2q6a5AkoJrkA8cSX40U0lI0nDA3V++Yhuk/s/KOTCzY6TPC0yj\n\ttEgg==","X-Gm-Message-State":"AHPjjUifdoAU/+BVY2qkzF/spuMrgW9fLZIjyjVKZOk7WiyQYvc76Xvj\tzjL3T6iJ/0jxrS1pMNOtmzr3SsS7","X-Google-Smtp-Source":"ADKCNb416YyIGirnpAWuO1usY57sUNsEAsBsOKLkd8V5DJTvb6PU14U4p6EBwv3OeMaAxG/9VjZ7FA==","X-Received":"by 10.28.213.21 with SMTP id m21mr7771043wmg.145.1505124691801;\n\tMon, 11 Sep 2017 03:11:31 -0700 (PDT)","Date":"Mon, 11 Sep 2017 12:11:29 +0200","User-Agent":"K-9 Mail for Android","In-Reply-To":"<20170911090339.fa6en3twtabgrm73@virgil.suse.cz>","References":"<20170911090339.fa6en3twtabgrm73@virgil.suse.cz>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","Subject":"Re: [HSA, PR 82119] Make HSA resilient to side-effects of split_edge","To":"gcc-patches@gcc.gnu.org, Martin Jambor <mjambor@suse.cz>,\n\tGCC Patches <gcc-patches@gcc.gnu.org>","From":"Richard Biener <richard.guenther@gmail.com>","Message-ID":"<2CC301AB-1A42-43D2-9741-CB4792EFA622@gmail.com>","X-IsSubscribed":"yes"}},{"id":1767688,"web_url":"http://patchwork.ozlabs.org/comment/1767688/","msgid":"<CAFiYyc0Ddpj78R8LOq8kYOr-jeGNJxkoQC4FUwwNV1=U74Lv-w@mail.gmail.com>","list_archive_url":null,"date":"2017-09-13T08:59:03","subject":"Re: [HSA, PR 82119] Make HSA resilient to side-effects of split_edge","submitter":{"id":1765,"url":"http://patchwork.ozlabs.org/api/people/1765/","name":"Richard Biener","email":"richard.guenther@gmail.com"},"content":"On Mon, Sep 11, 2017 at 12:11 PM, Richard Biener\n<richard.guenther@gmail.com> wrote:\n> On September 11, 2017 11:03:39 AM GMT+02:00, Martin Jambor <mjambor@suse.cz> wrote:\n>>Hi,\n>>\n>>in r251264 the code of split_edge was changed not to reallocate PHI\n>>vectors, but it reorders them along with the order of incoming edges\n>>to the BB.  There are two places in the HSA BE where we call\n>>split_edge while iterating over PHI node arguments and those broke,\n>>resulting in a number of libgomp testsuite failures.\n>\n> Ah, interesting. I'll try to change split_edge to not reorder PHI arguments.\n\nHmm, I think it wasn't guaranteed before to not reorder either and I can't\nsee a way to do this with the current building blocks.\n\nRichard.\n\n> Richard.\n>\n>>Fixed thusly.  I have tested the patch on HSA capable APU and also did\n>>full bootstrap and testing, I will commit in a few moments.\n>>\n>>Martin\n>>\n>>\n>>2017-09-11  Martin Jambor  <mjambor@suse.cz>\n>>\n>>       PR hsa/82119\n>>       * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in\n>>       arguments in advance.\n>>       * hsa-regalloc.c (naive_process_phi): New parameter predecessors,\n>>       use it to find predecessor edges.\n>>       (naive_outof_ssa): Collect vector of predecessors.\n>>---\n>>gcc/hsa-gen.c      | 51\n>>++++++++++++++++++++++++++++++++++++++-------------\n>> gcc/hsa-regalloc.c | 14 +++++++++++---\n>> 2 files changed, 49 insertions(+), 16 deletions(-)\n>>\n>>diff --git a/gcc/hsa-gen.c b/gcc/hsa-gen.c\n>>index bd227626e83..6e054c0ce82 100644\n>>--- a/gcc/hsa-gen.c\n>>+++ b/gcc/hsa-gen.c\n>>@@ -5657,8 +5657,37 @@ gen_hsa_phi_from_gimple_phi (gimple *phi_stmt,\n>>hsa_bb *hbb)\n>>   hphi = new hsa_insn_phi (count, dest);\n>>   hphi->m_bb = hbb->m_bb;\n>>\n>>-  tree lhs = gimple_phi_result (phi_stmt);\n>>+  auto_vec <tree, 8> aexprs;\n>>+  auto_vec <hsa_op_reg *, 8> aregs;\n>>+\n>>+  /* Calling split_edge when processing a PHI node messes up with the\n>>order of\n>>+     gimple phi node arguments (it moves the one associated with the\n>>edge to\n>>+     the end).  We need to keep the order of edges and arguments of\n>>HSA phi\n>>+     node arguments consistent, so we do all required splitting as the\n>>first\n>>+     step, and in reverse order as to not be affected by the\n>>re-orderings.  */\n>>+  for (unsigned j = count; j != 0; j--)\n>>+    {\n>>+      unsigned i = j - 1;\n>>+      tree op = gimple_phi_arg_def (phi_stmt, i);\n>>+      if (TREE_CODE (op) != ADDR_EXPR)\n>>+      continue;\n>>\n>>+      edge e = gimple_phi_arg_edge (as_a <gphi *> (phi_stmt), i);\n>>+      hsa_bb *hbb_src = hsa_init_new_bb (split_edge (e));\n>>+      hsa_op_address *addr = gen_hsa_addr (TREE_OPERAND (op, 0),\n>>+                                         hbb_src);\n>>+\n>>+      hsa_op_reg *dest\n>>+      = new hsa_op_reg (hsa_get_segment_addr_type (BRIG_SEGMENT_FLAT));\n>>+      hsa_insn_basic *insn\n>>+      = new hsa_insn_basic (2, BRIG_OPCODE_LDA, BRIG_TYPE_U64,\n>>+                            dest, addr);\n>>+      hbb_src->append_insn (insn);\n>>+      aexprs.safe_push (op);\n>>+      aregs.safe_push (dest);\n>>+    }\n>>+\n>>+  tree lhs = gimple_phi_result (phi_stmt);\n>>   for (unsigned i = 0; i < count; i++)\n>>     {\n>>       tree op = gimple_phi_arg_def (phi_stmt, i);\n>>@@ -5684,18 +5713,14 @@ gen_hsa_phi_from_gimple_phi (gimple *phi_stmt,\n>>hsa_bb *hbb)\n>>           }\n>>         else if (TREE_CODE (op) == ADDR_EXPR)\n>>           {\n>>-            edge e = gimple_phi_arg_edge (as_a <gphi *> (phi_stmt), i);\n>>-            hsa_bb *hbb_src = hsa_init_new_bb (split_edge (e));\n>>-            hsa_op_address *addr = gen_hsa_addr (TREE_OPERAND (op, 0),\n>>-                                                 hbb_src);\n>>-\n>>-            hsa_op_reg *dest\n>>-              = new hsa_op_reg (hsa_get_segment_addr_type (BRIG_SEGMENT_FLAT));\n>>-            hsa_insn_basic *insn\n>>-              = new hsa_insn_basic (2, BRIG_OPCODE_LDA, BRIG_TYPE_U64,\n>>-                                    dest, addr);\n>>-            hbb_src->append_insn (insn);\n>>-\n>>+            hsa_op_reg *dest = NULL;\n>>+            for (unsigned a_idx = 0; a_idx < aexprs.length (); a_idx++)\n>>+              if (aexprs[a_idx] == op)\n>>+                {\n>>+                  dest = aregs[a_idx];\n>>+                  break;\n>>+                }\n>>+            gcc_assert (dest);\n>>             hphi->set_op (i, dest);\n>>           }\n>>         else\n>>diff --git a/gcc/hsa-regalloc.c b/gcc/hsa-regalloc.c\n>>index 2a17254c3b2..7fc3a8afa3d 100644\n>>--- a/gcc/hsa-regalloc.c\n>>+++ b/gcc/hsa-regalloc.c\n>>@@ -42,7 +42,7 @@ along with GCC; see the file COPYING3.  If not see\n>>/* Process a PHI node PHI of basic block BB as a part of naive\n>>out-f-ssa.  */\n>>\n>> static void\n>>-naive_process_phi (hsa_insn_phi *phi)\n>>+naive_process_phi (hsa_insn_phi *phi, const vec<edge> &predecessors)\n>> {\n>>   unsigned count = phi->operand_count ();\n>>   for (unsigned i = 0; i < count; i++)\n>>@@ -55,7 +55,7 @@ naive_process_phi (hsa_insn_phi *phi)\n>>       if (!op)\n>>       break;\n>>\n>>-      e = EDGE_PRED (phi->m_bb, i);\n>>+      e = predecessors[i];\n>>       if (single_succ_p (e->src))\n>>       hbb = hsa_bb_for_bb (e->src);\n>>       else\n>>@@ -89,10 +89,18 @@ naive_outof_ssa (void)\n>>     hsa_bb *hbb = hsa_bb_for_bb (bb);\n>>     hsa_insn_phi *phi;\n>>\n>>+    /* naive_process_phi can call split_edge on an incoming edge which\n>>order if\n>>+       the incoming edges to the basic block and thus make it\n>>inconsistent with\n>>+       the ordering of PHI arguments, so we collect them in advance.\n>>*/\n>>+    auto_vec<edge, 8> predecessors;\n>>+    unsigned pred_count = EDGE_COUNT (bb->preds);\n>>+    for (unsigned i = 0; i < pred_count; i++)\n>>+      predecessors.safe_push (EDGE_PRED (bb, i));\n>>+\n>>     for (phi = hbb->m_first_phi;\n>>        phi;\n>>        phi = phi->m_next ? as_a <hsa_insn_phi *> (phi->m_next) : NULL)\n>>-      naive_process_phi (phi);\n>>+      naive_process_phi (phi, predecessors);\n>>\n>>/* Zap PHI nodes, they will be deallocated when everything else will.\n>>*/\n>>     hbb->m_first_phi = NULL;\n>","headers":{"Return-Path":"<gcc-patches-return-462002-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-462002-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=\"P+FjiD3P\"; 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 3xsbFM4c2dz9sPs\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Sep 2017 18:59:18 +1000 (AEST)","(qmail 1930 invoked by alias); 13 Sep 2017 08:59:08 -0000","(qmail 1920 invoked by uid 89); 13 Sep 2017 08:59:08 -0000","from mail-wm0-f45.google.com (HELO mail-wm0-f45.google.com)\n\t(74.125.82.45) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 13 Sep 2017 08:59:05 +0000","by mail-wm0-f45.google.com with SMTP id i189so1188945wmf.1 for\n\t<gcc-patches@gcc.gnu.org>; Wed, 13 Sep 2017 01:59:05 -0700 (PDT)","by 10.80.180.250 with HTTP; Wed, 13 Sep 2017 01:59:03 -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:content-type; q=dns; s=default; b=llL4OSAzjRWufdHvUh\n\tehqBsli0XS9Pl+ZuBxRJDJRUbHymBOcgAKxlhtugHfJ8nlDh7R1GwjY6PwP9d/F2\n\tkxyKDEW2YrraGUnIiXZrCzvASeNU1np/o4lLvTcgXCMOCus28mWOgEbpY7mPWNqA\n\tHbiiu68cfUYKtyUzdC8lzNCjE=","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:content-type; s=default; bh=+2ijnOqGS5KOK1iZkQr3xV8r\n\tN68=; b=P+FjiD3PRge6FDRYryaTGWeSfTGtL3lAxG9kPgELlv1num2jCGLx2EWC\n\to39ZK61Wyxyd/fA4JgJscl2zPbkzQkIvbMIehQ6j22i8BVXY2VDV0c1iOfzWhsBL\n\t5qUGzIg6Ld83Fb9dVfDMj3xpAgoImE52+sAVDgu2PpN733zION4=","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.5 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2,\n\tGIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=(unknown)","X-HELO":"mail-wm0-f45.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;\n\tbh=rUx6i83j0JJ6NBWbzSQy01NYiUa9ul0G24rmU8RfOD4=;\n\tb=FSph7lQ6eRi+YcKn71uY53tyM8LjZOQ78oaL2JN+AzenP6j91aj+CnAlDlv/wpa4sc\n\tRbfAbvAzBwVzFB86MLtHYvgOpJymrdMNSHl0YPpht4P8c6+8vc+wneoVAxoVHueHm83i\n\tb7xoDs476hcmXu5zGdlYPOuyQby9P1tac585MagnktWfxYVcMJ2J0RUbLtWMSA2mREB7\n\tAFA6WKZ5WCgycaBN3C9AWUqGv3BQ3O3AU8ccodidTeFzcH5iUd08EqkWx55B+18hE71s\n\t7sJQkmicAsvbjBo2orCFdsDXyQD8gSNvBctjXyax3a99VrN17DcO4J8jkpy0a1Gwsxar\n\t1uVA==","X-Gm-Message-State":"AHPjjUgGv4xR1HzQJ3Jk7WdPctRKbyu2g/J2d5jcX47WsW9a8XSj66f/\thMhzvRrVm6Zf7BtLEH5vJO/rEAmPL9NT3fDnDTc=","X-Google-Smtp-Source":"ADKCNb4pRbIkFoFmYTyiyfbvT6J5etlyNeQ1Q/TiyB2GWDiZ/0r1bLeCLPMTD04BZGbDhYdxrSr3iJl4ebkul+RbcM4=","X-Received":"by 10.80.137.39 with SMTP id e36mr14976822ede.182.1505293143470;\n\tWed, 13 Sep 2017 01:59:03 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<2CC301AB-1A42-43D2-9741-CB4792EFA622@gmail.com>","References":"<20170911090339.fa6en3twtabgrm73@virgil.suse.cz>\n\t<2CC301AB-1A42-43D2-9741-CB4792EFA622@gmail.com>","From":"Richard Biener <richard.guenther@gmail.com>","Date":"Wed, 13 Sep 2017 10:59:03 +0200","Message-ID":"<CAFiYyc0Ddpj78R8LOq8kYOr-jeGNJxkoQC4FUwwNV1=U74Lv-w@mail.gmail.com>","Subject":"Re: [HSA, PR 82119] Make HSA resilient to side-effects of split_edge","To":"Martin Jambor <mjambor@suse.cz>, GCC Patches <gcc-patches@gcc.gnu.org>","Content-Type":"text/plain; charset=\"UTF-8\"","X-IsSubscribed":"yes"}}]