From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7879) id 7D53B3858439; Wed, 15 Feb 2023 10:13:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7D53B3858439 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1676456035; bh=OyKq1fPJfioliHGo9LoBYdiR1RLOFzacgwHTnQMyo9U=; h=From:To:Subject:Date:From; b=HQ3L+tHZvP1h8W77AkdDAHRooMRG/LLJmXdJjx+WFrM0gjr22teUq/SpBbmSMwP0X Yv47ZxJBJn105RNZT0sVI1Jo4m2V7KY6z0/s8/ndlsgOE+R/CCDkQ/t3RLixPPVRN3 VxWKCHGK3JnQXngm5qtnchGDyOaAO2bRPENfc1SY= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Filip Kastl To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/pheeck/heads/sccp)] add check for operands that aren't SSA names X-Act-Checkin: gcc X-Git-Author: Filip Kastl X-Git-Refname: refs/users/pheeck/heads/sccp X-Git-Oldrev: 77e3b24be2006fe2008c71e9c78a2444c3a59a0f X-Git-Newrev: 0d47194f8a5735a457a78830935d266353dfa1fe Message-Id: <20230215101355.7D53B3858439@sourceware.org> Date: Wed, 15 Feb 2023 10:13:55 +0000 (GMT) List-Id: https://gcc.gnu.org/g:0d47194f8a5735a457a78830935d266353dfa1fe commit 0d47194f8a5735a457a78830935d266353dfa1fe Author: Filip Kastl Date: Fri Sep 2 13:25:56 2022 +0200 add check for operands that aren't SSA names Diff: --- gcc/sccp.cc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/gcc/sccp.cc b/gcc/sccp.cc index 529307dbe27..8b57e3a4a3c 100644 --- a/gcc/sccp.cc +++ b/gcc/sccp.cc @@ -217,8 +217,11 @@ tarjan_compute_sccs (vec phis) unsigned j; for (j = 0; j < gimple_phi_num_args (phi); j++) { - tree op_ssa = gimple_phi_arg_def (phi, j); - gimple *op_stmt = SSA_NAME_DEF_STMT (op_ssa); + tree op_var = gimple_phi_arg_def (phi, j); + if (TREE_CODE (op_var) != SSA_NAME) + continue; /* Skip arguments that aren't SSA names. */ + + gimple *op_stmt = SSA_NAME_DEF_STMT (op_var); /* Skip any operand that isn't a vertex we're using. */ if (!tarjan_is_using (op_stmt)) @@ -254,9 +257,12 @@ tarjan_compute_sccs (vec phis) unsigned j; for (j = 0; j < gimple_phi_num_args (phi); j++) { - tree op_ssa = gimple_phi_arg_def (phi, j); // TODO Same code + tree op_var = gimple_phi_arg_def (phi, j); // TODO Same code // twice (iterator?) - gimple *op_stmt = SSA_NAME_DEF_STMT (op_ssa); + if (TREE_CODE (op_var) != SSA_NAME) + continue; /* Skip arguments that aren't SSA names. */ + + gimple *op_stmt = SSA_NAME_DEF_STMT (op_var); /* Skip any operand that isn't a vertex we're using. */ if (!tarjan_is_using (op_stmt)) @@ -342,6 +348,9 @@ process_scc (vec scc) for (i = 0; i < gimple_phi_num_args (phi); i++) { tree op = gimple_phi_arg_def (phi, i); + if (TREE_CODE (op) != SSA_NAME) + continue; /* Skip arguments that aren't SSA names. */ + gimple *op_stmt = SSA_NAME_DEF_STMT (op); // Check if operand is a phi from scc (TODO Efficiency)