From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7879) id A46033858C54; Fri, 2 Sep 2022 11:26:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A46033858C54 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1662117963; bh=sVl73P0q1fNvjDyy57O4cmh4dv5EEkemsCnGgxkdC4Y=; h=From:To:Subject:Date:From; b=aaxus1sDlUU7YVX50QmNaZzvHCoEWoGhb7PaBeJoEdOSj/0w6pYEdY9l3751W/IhY 1gtytOjf5sX56CPdNZodrk/wheB/PZThy0DwHvWFcrYB935K02/LqsovZl45pOhQcT f05WgD56Mkhktt6gAyDkhZhP92woyqHxkZGLhwVc= 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: 8938f59405770ecdde927e761053d9236aa78a25 X-Git-Newrev: d971e7347969e6ad1956fac4fafc5dc59ecdd4e4 Message-Id: <20220902112603.A46033858C54@sourceware.org> Date: Fri, 2 Sep 2022 11:26:03 +0000 (GMT) List-Id: https://gcc.gnu.org/g:d971e7347969e6ad1956fac4fafc5dc59ecdd4e4 commit d971e7347969e6ad1956fac4fafc5dc59ecdd4e4 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)