From patchwork Mon Feb 10 18:07:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sandra Loosemore X-Patchwork-Id: 106298 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1FE403857015 for ; Mon, 10 Feb 2025 18:17:01 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1FE403857015 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=nY4iypeO X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-il1-x131.google.com (mail-il1-x131.google.com [IPv6:2607:f8b0:4864:20::131]) by sourceware.org (Postfix) with ESMTPS id 9CA553857038 for ; Mon, 10 Feb 2025 18:07:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9CA553857038 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9CA553857038 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739210859; cv=none; b=HLH64lFDE+dBmENmFHcSAHm+GQ4w8eEpZluSQj5vJUrDEwrKoq4btAhvXXVCAcp6cDIAzjaXfXKKBnoaJS1uIpTg6y//UuCNPRS6Ive0+17hRh7KfSSE+L+Wc3/fIisLLBxH2kdbWStNVuEGP8zJ+LM/jkX+1xrRjiwQY0O17ww= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1739210859; c=relaxed/simple; bh=GzCdhuP6VMfXcR0qaneq0xHH6tl0E1fnvY2Dq0tjGD0=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=fhrVgBmaLvZfIijcrLl2UyFeQ07AUFH9Nx4UnCuMyTXE0/gCRUl6UG3rAzlL0HO1I3R6xdF4JypSC7OC1zanYWKlj2+nuFbEMxVXUhULtDOJZla6ZlksPvRU6ru/U16r+LDVDvhKDIDHyjUvgZre0uG3KKWdwgGBpbSZgD3B7OQ= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9CA553857038 Received: by mail-il1-x131.google.com with SMTP id e9e14a558f8ab-3d14dec3236so7439425ab.0 for ; Mon, 10 Feb 2025 10:07:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1739210858; x=1739815658; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gE1ZtwsfzLg9hp9gaUf9v9tq09FKzJQnQFs1sn2ejrE=; b=nY4iypeOIJAhJMsOyPmVEDxwy2FIXL4Fker4UrznEYKDZ1kyiASNHxHvIvS7ZP4B0k gUhrLbVGjnlvl9aLsByZJm91LmvvCLmUO3d8qsqfulRamgnz/lOEkhHC9HAALhnX+BwN rYns0D4yIT18uUlazKp2QL0owEwwsWGtGH3VDwZmt8+Ef0GxANfS8p87xG1kxkNpgEhN M/hozjdD1DXKFN8ae1BCkTl1tWLj2seguULBRmoul44cjrKY2n8QcVeLjSLwCjBcpT5m TGdFSud9BMeDxrsMsE8QQxhwyflZyFQsc2qHzDHyjuVUiXaGqKIAbyQ7j5Jsvw81aNsH O+SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739210858; x=1739815658; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gE1ZtwsfzLg9hp9gaUf9v9tq09FKzJQnQFs1sn2ejrE=; b=iOAJKDeNbfWaxuukODpfIYQX0pzMdyz1YHhTSx3v9vgJkRoFI3QlCBDH2GL5PZLgW1 7IwhIktxSvx6DDBPfdgEARQ/XCYD56ykS4UngA/oDAV7Elz8cGhq4UEy0UyKoIyeH8oF GuI6ow9IPW8A+pbTfzs2bR+lyyuqiLwPKFeO+mWQeBVzMsG5jBK7C+cFb0xHuDZTCfVx JvvtSEgDtVnfmMnId3PQeXo9wg94cOUATrNz6krQH8h4PMiE4vwU9WlEqHDBbKKhiIlR pyNAc2dJtNjRHhCaJJpRkSjkUHHlTuokYHC8WC+bPQBHBpJGPEXp4kavArzNPCV7zStb MbsA== X-Gm-Message-State: AOJu0YyuVtx2aUiUkCrDJgjztldV7/sFiJtgwPIkBS2E+cA2jpNxjVaX 2ZHbtolDT5Oo2jROolvjvgnVTzII6u0hqnobjf/LsvF0zoopoe/T0OcWZyobcKWm2Dv39pwk/Py m X-Gm-Gg: ASbGncvLHGWCY4Y03UrlthtHeONN09ZxxFh7O6l14OYHLVGaCdVYioD/t8YOowTIweL /EIe8OVLP/h+M49CdBPdfFXrTi21ub/oO1LpMhetp+RqwxIOWzX5bshCBPqZyVJrRR2VvFF2DbB lXiUigGaBGSXMUbL2sYMWSO4enblWIjLtjJ/D51/75wDGzguQwaAuDSD9GtqkQ6h6khJYpiqlsZ tsoUGODY0xgRd0b/K0tifcAcQwOAWLvoPHUwLnUABLWHCATLjSQ734GMi9q+YkNMGoMdDPhxvrM xqaqt/wpHLP9DWvhvHqQnYH5G80= X-Google-Smtp-Source: AGHT+IGs04JPbGfPg5wbyMDBiwp/ZkALGZHyiWutPqW4SZ5M20auFQ/UE9KBZnQEY4zdn+SPV4qHZw== X-Received: by 2002:a05:6e02:1546:b0:3d0:10a6:99a3 with SMTP id e9e14a558f8ab-3d13dd4f5c5mr92216765ab.12.1739210858465; Mon, 10 Feb 2025 10:07:38 -0800 (PST) Received: from pondscum.hsd1.co.comcast.net ([2601:281:d901:97c0::af71]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d13d83c967sm19615365ab.45.2025.02.10.10.07.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 10:07:37 -0800 (PST) From: Sandra Loosemore To: gcc-patches@gcc.gnu.org Cc: jakub@redhat.com, tburnus@baylibre.com Subject: [PATCH 1/7] OpenMP: Bug fixes for comparing context selectors Date: Mon, 10 Feb 2025 11:07:19 -0700 Message-Id: <20250210180725.2076678-2-sloosemore@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250210180725.2076678-1-sloosemore@baylibre.com> References: <20250210180725.2076678-1-sloosemore@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org gcc/ChangeLog * omp-general.cc (omp_context_selector_props_compare): Handle arbitrary expressions in the "user" and "device_num" selectors. (omp_context_selector_set_compare): Detect mismatch when one selector specifies a score and the other doesn't. --- gcc/omp-general.cc | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/gcc/omp-general.cc b/gcc/omp-general.cc index 2ce79bfc9d8..0d6f02ece31 100644 --- a/gcc/omp-general.cc +++ b/gcc/omp-general.cc @@ -2350,8 +2350,26 @@ omp_context_selector_props_compare (enum omp_tss_code set, if (set == OMP_TRAIT_SET_USER && sel == OMP_TRAIT_USER_CONDITION) { - if (integer_zerop (OMP_TP_VALUE (p1)) - != integer_zerop (OMP_TP_VALUE (p2))) + /* Recognize constants that have equal truth values, + otherwise assume all expressions are unique. */ + tree v1 = OMP_TP_VALUE (p1); + tree v2 = OMP_TP_VALUE (p2); + if (TREE_CODE (v1) != INTEGER_CST + || TREE_CODE (v2) != INTEGER_CST + || integer_zerop (v1) != integer_zerop (v2)) + return 2; + break; + } + if (set == OMP_TRAIT_SET_TARGET_DEVICE + && sel == OMP_TRAIT_DEVICE_NUM) + { + /* Recognize constants that have equal values, + otherwise assume all expressions are unique. */ + tree v1 = OMP_TP_VALUE (p1); + tree v2 = OMP_TP_VALUE (p2); + if (TREE_CODE (v1) != INTEGER_CST + || TREE_CODE (v2) != INTEGER_CST + || tree_int_cst_compare (v1, v2) != 0) return 2; break; } @@ -2469,7 +2487,9 @@ omp_context_selector_set_compare (enum omp_tss_code set, tree ctx1, tree ctx2) { tree score1 = OMP_TS_SCORE (ts1); tree score2 = OMP_TS_SCORE (ts2); - if (score1 && score2 && !simple_cst_equal (score1, score2)) + if ((score1 && score2 && !simple_cst_equal (score1, score2)) + || (score1 && !score2) + || (!score1 && score2)) return 2; int r = omp_context_selector_props_compare (set, OMP_TS_CODE (ts1),