From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2140) id 5A9E93858D3C; Fri, 19 Nov 2021 13:32:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5A9E93858D3C Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Alexandre Oliva To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/aoliva/heads/testme)] harden cond: broaden detaching constraint X-Act-Checkin: gcc X-Git-Author: Alexandre Oliva X-Git-Refname: refs/users/aoliva/heads/testme X-Git-Oldrev: 28cab866b951826f22390088b4cd7cf9a4c11806 X-Git-Newrev: 13b33e79588cedfcdfd8a08c23f65dc76a92789d Message-Id: <20211119133240.5A9E93858D3C@sourceware.org> Date: Fri, 19 Nov 2021 13:32:40 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Nov 2021 13:32:40 -0000 https://gcc.gnu.org/g:13b33e79588cedfcdfd8a08c23f65dc76a92789d commit 13b33e79588cedfcdfd8a08c23f65dc76a92789d Author: Alexandre Oliva Date: Fri Nov 19 10:31:44 2021 -0300 harden cond: broaden detaching constraint The asm statements used to prevent the hardening compares from being optimized out as redundant are too narrow, unintentionally forcing values into general registers, which is inefficient, undesirable, and occasionally conflicting with machine expectations as to which modes go in which registers. This patch extends the constraint of the asm to accept any kind of register, besides everything that was already accepted as a general operand. for gcc/ChangeLog PR target/103097 PR middle-end/103149 * gimple-harden-conditionals.cc (detach_value): Broaden the asm constraints to accept any kind of register. Diff: --- gcc/gimple-harden-conditionals.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/gimple-harden-conditionals.cc b/gcc/gimple-harden-conditionals.cc index cfa2361d65b..8cf7f2cab47 100644 --- a/gcc/gimple-harden-conditionals.cc +++ b/gcc/gimple-harden-conditionals.cc @@ -132,13 +132,13 @@ detach_value (location_t loc, gimple_stmt_iterator *gsip, tree val) tree ret = make_ssa_name (TREE_TYPE (val)); SET_SSA_NAME_VAR_OR_IDENTIFIER (ret, SSA_NAME_IDENTIFIER (val)); - /* Output asm ("" : "=g" (ret) : "0" (val)); */ + /* Output asm ("" : "=gX" (ret) : "0" (val)); */ vec *inputs = NULL; vec *outputs = NULL; vec_safe_push (outputs, build_tree_list (build_tree_list - (NULL_TREE, build_string (2, "=g")), + (NULL_TREE, build_string (3, "=gX")), ret)); vec_safe_push (inputs, build_tree_list