From patchwork Fri Oct 13 11:20:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Sidwell X-Patchwork-Id: 825411 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-464122-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="x/v5E4Lc"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yD4yc6lc8z9s82 for ; Fri, 13 Oct 2017 22:20:40 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; q=dns; s=default; b=KNrEE/U7kXs5J3MDMqm2AId+W7BE75x7Euam7iZOV6mDpLNqj4 2PDPxUJFufkjiPEtw5ABfjjkVvMKcyZP5M9RPMoJR5a5bO9rce5WqXKuBNU+8Tqm G4lBMKlkmEl5+4TgvhKte4y+FUPfuCdRF5vWM4R0IGOav96cddmtTjoq4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; s= default; bh=/kbKAWsL+w83JRTix7tPsmP5NIY=; b=x/v5E4LccT2JHHlSj4er ppiIRVT5/QK5ngyY99ZEa9yIIFOUiLq8Zie44zRRsXX9uiQaFRwRc9+bD44TTPSD IyqDt2YCdP8eVXJZm9OTrAFr5lRO0aJZu81dIe57c6IGlydfKtVsmiV6xyyeoTk7 QAWvpbkcs+xThUzj8+YcU8w= Received: (qmail 122909 invoked by alias); 13 Oct 2017 11:20:33 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 122311 invoked by uid 89); 13 Oct 2017 11:20:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=CLASS X-HELO: mail-qt0-f195.google.com Received: from mail-qt0-f195.google.com (HELO mail-qt0-f195.google.com) (209.85.216.195) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 13 Oct 2017 11:20:30 +0000 Received: by mail-qt0-f195.google.com with SMTP id k31so7468849qta.5 for ; Fri, 13 Oct 2017 04:20:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:to:from:subject:message-id:date :user-agent:mime-version:content-language; bh=luWc8sbG3sNSoD0I8zsMxLrtGSZHHP0DBPAXOlIiNuI=; b=DN+096EWYJXHtQVMTF5M2riiFXoQ6R5qRrqKGx3mMGSvL8NzeGcdoWCOp6GAYX6Pbs NWQt4BgVYsiGNUUqW9yH2mzJDyc1wYbXU4g5G0h6CG6l7zIZr+hJrW/3zxmL3yFDD7QH 5HEWqwm7CAg4q2vb4G2d8xupb2UBHaLdqDMZx39y4yQjsvuRK5gjRoHlQX1qN70qAUZs KYmeD7kM19KwFsIvWYEb7GnfcvdSIzsWe5Y6MaLM+iC81EUHaFssBTy38MwT/O7klZ0R gDm+UEoSqDabDiWQiilsmOObtvLf4Xg+ZpxKrH3ATHesU3yzNSFu0Icdps/kYXq9Eb59 v9jg== X-Gm-Message-State: AMCzsaVJ4LNazOB7xtkbirCu5pN4O1KvXLag7fpvZEu8/wjSxGFEWR17 zTRVTalSgl8jyJnRuo8SjzA= X-Google-Smtp-Source: AOwi7QABJiUrlN/R9a5kvgVmiAjTZ33SEOdi/K8HgPqBC7uCQ7DhKZYyz6aqH35KzWIiZANYUkqHTQ== X-Received: by 10.13.226.80 with SMTP id l77mr687816ywe.14.1507893628620; Fri, 13 Oct 2017 04:20:28 -0700 (PDT) Received: from ?IPv6:2620:10d:c0a3:20fb:7500:e7fb:4a6f:2254? ([2620:10d:c091:200::7ed9]) by smtp.googlemail.com with ESMTPSA id j3sm280075ywe.80.2017.10.13.04.20.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Oct 2017 04:20:28 -0700 (PDT) To: GCC Patches , Richard Biener From: Nathan Sidwell Subject: [PATCH] Tree structure marking Message-ID: <81bd415c-1819-5b7c-f8ba-b1e6c0a52d84@acm.org> Date: Fri, 13 Oct 2017 07:20:26 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In figuring out a problem with CODE_CONTAINS_STRUCT I noticed that: 1) the tree_contains_struct array is unsigned char. bool seems a better choice now we're in C++-land. 2) the MARK_TS_FOO macros used the 'do ... while (0)' idiom. But there's no need for such verbosity. These are 'ary[index] = true' setters -- other setters don't use do while: #define SET_DECL_ASSEMBLER_NAME(NODE, NAME) \ (DECL_ASSEMBLER_NAME_RAW (NODE) = (NAME)) We can combine them with the comma operator, not make separate statements. Fixed thusly, ok? nathan 2017-10-13 Nathan Sidwell * tree-core.h (tree_contains_struct): Make bool. * tree.c (tree_contains_struct): Likewise. * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom. (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): Likewise, use comma operator. Index: tree-core.h =================================================================== --- tree-core.h (revision 253695) +++ tree-core.h (working copy) @@ -2058,7 +2058,7 @@ struct floatn_type_info { Global variables ---------------------------------------------------------------------------*/ /* Matrix describing the structures contained in a given tree code. */ -extern unsigned char tree_contains_struct[MAX_TREE_CODES][64]; +extern bool tree_contains_struct[MAX_TREE_CODES][64]; /* Class of tree given its code. */ extern const enum tree_code_class tree_code_type[]; Index: tree.c =================================================================== --- tree.c (revision 253695) +++ tree.c (working copy) @@ -259,7 +259,7 @@ tree integer_types[itk_none]; bool int_n_enabled_p[NUM_INT_N_ENTS]; struct int_n_trees_t int_n_trees [NUM_INT_N_ENTS]; -unsigned char tree_contains_struct[MAX_TREE_CODES][64]; +bool tree_contains_struct[MAX_TREE_CODES][64]; /* Number of operands for each OpenMP clause. */ unsigned const char omp_clause_num_ops[] = Index: tree.h =================================================================== --- tree.h (revision 253695) +++ tree.h (working copy) @@ -76,64 +76,43 @@ as_internal_fn (combined_fn code) /* Macros for initializing `tree_contains_struct'. */ #define MARK_TS_BASE(C) \ - do { \ - tree_contains_struct[C][TS_BASE] = 1; \ - } while (0) + (tree_contains_struct[C][TS_BASE] = true) #define MARK_TS_TYPED(C) \ - do { \ - MARK_TS_BASE (C); \ - tree_contains_struct[C][TS_TYPED] = 1; \ - } while (0) + (MARK_TS_BASE (C), \ + tree_contains_struct[C][TS_TYPED] = true) #define MARK_TS_COMMON(C) \ - do { \ - MARK_TS_TYPED (C); \ - tree_contains_struct[C][TS_COMMON] = 1; \ - } while (0) + (MARK_TS_TYPED (C), \ + tree_contains_struct[C][TS_COMMON] = true) #define MARK_TS_TYPE_COMMON(C) \ - do { \ - MARK_TS_COMMON (C); \ - tree_contains_struct[C][TS_TYPE_COMMON] = 1; \ - } while (0) + (MARK_TS_COMMON (C), \ + tree_contains_struct[C][TS_TYPE_COMMON] = true) #define MARK_TS_TYPE_WITH_LANG_SPECIFIC(C) \ - do { \ - MARK_TS_TYPE_COMMON (C); \ - tree_contains_struct[C][TS_TYPE_WITH_LANG_SPECIFIC] = 1; \ - } while (0) + (MARK_TS_TYPE_COMMON (C), \ + tree_contains_struct[C][TS_TYPE_WITH_LANG_SPECIFIC] = true) #define MARK_TS_DECL_MINIMAL(C) \ - do { \ - MARK_TS_COMMON (C); \ - tree_contains_struct[C][TS_DECL_MINIMAL] = 1; \ - } while (0) + (MARK_TS_COMMON (C), \ + tree_contains_struct[C][TS_DECL_MINIMAL] = true) #define MARK_TS_DECL_COMMON(C) \ - do { \ - MARK_TS_DECL_MINIMAL (C); \ - tree_contains_struct[C][TS_DECL_COMMON] = 1; \ - } while (0) + (MARK_TS_DECL_MINIMAL (C), \ + tree_contains_struct[C][TS_DECL_COMMON] = true) #define MARK_TS_DECL_WRTL(C) \ - do { \ - MARK_TS_DECL_COMMON (C); \ - tree_contains_struct[C][TS_DECL_WRTL] = 1; \ - } while (0) + (MARK_TS_DECL_COMMON (C), \ + tree_contains_struct[C][TS_DECL_WRTL] = true) #define MARK_TS_DECL_WITH_VIS(C) \ - do { \ - MARK_TS_DECL_WRTL (C); \ - tree_contains_struct[C][TS_DECL_WITH_VIS] = 1; \ - } while (0) + (MARK_TS_DECL_WRTL (C), \ + tree_contains_struct[C][TS_DECL_WITH_VIS] = true) #define MARK_TS_DECL_NON_COMMON(C) \ - do { \ - MARK_TS_DECL_WITH_VIS (C); \ - tree_contains_struct[C][TS_DECL_NON_COMMON] = 1; \ - } while (0) - + (MARK_TS_DECL_WITH_VIS (C), \ + tree_contains_struct[C][TS_DECL_NON_COMMON] = true) /* Returns the string representing CLASS. */