From patchwork Sat May 13 23:23:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bernhard Reutner-Fischer X-Patchwork-Id: 93628 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp6016574vqo; Sat, 13 May 2023 16:30:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4mTvmBnVR/2rHEgOT2HUvhk/BxOsAQEhnNpnIIejy1Tew0/UJMqAn6YOMtQcdErpwgBgUc X-Received: by 2002:a17:907:98d:b0:94e:cf72:8147 with SMTP id bf13-20020a170907098d00b0094ecf728147mr27697413ejc.48.1684020610291; Sat, 13 May 2023 16:30:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684020610; cv=none; d=google.com; s=arc-20160816; b=jPxK1q1RdTqLs05cJPaAa9UvIvpfgVGiMLfMcZ7bEdpVDpEHnXBPxM+daUKReMN2gM MVFPzWavCx0ZfCMlxxttiDKkwzSY2hzpWVkGls5SXJpzZUzmHuJVruYNzappAe+N4zw9 VwXEaRUrJdqE6pMGnX/cfUZnEii+qcoSAsZNNk8ypxX9j8+ZYLARHj8tiwToF7kdAZfJ GKPlNuNIuNxhNXCV/TDZ1MnuFmsay8bCYKKOTi7vcR/9fHhb81pitJ0yMzavkr6wBnZz 0WveYVmgP5FqfitGLf97EZaHyWjh+9OPAIBaAg0lqgoWo0Kz4nQJudjvsAo1bgJoAT6k b7CA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=dnhltITTP1pkpb+TIJ4s/3JxBKpaLayURSD7DoidDVM=; b=GoYYzG/jL4NeMnLpwt89tcuN8BCUJup+6Cf8sddAwg7G0Xe3gpm71YWugaxKdVsBnr 0XVZ0uQJCIrJ7km3wpu2FP3ZNY1V72j6OEkwEV5/Z0ax1xq3P84amJj2gcf8echGUsyi 9CJMIcmaZlXYLJLTFQtTuW+xnOZ76y1DqKaN7a6Nf/5ySbJ+N4KBun0U48jOBvDJ9TxQ QhJLVZahN013v0m/sDL6uw5JRkCjntv3ovEzW5zwcwJ+ZLT4J/+8TkkJfen1yWWh4T0e z66LyMZuDKqsirG3qXUumJr8L2Y2xUEwe934xeWkmbbeSrg4HpvSK4lmxAEN/H05HtuL jFLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=bVHA2u8h; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id qx11-20020a170906fccb00b0094f2b80b075si9243106ejb.349.2023.05.13.16.30.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 May 2023 16:30:10 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=bVHA2u8h; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 432A338708EC for ; Sat, 13 May 2023 23:26:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 432A338708EC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1684020406; bh=dnhltITTP1pkpb+TIJ4s/3JxBKpaLayURSD7DoidDVM=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=bVHA2u8hmNgdpOUaMLu9shTdekLGbQRxTbIx6zaiHmXr0Aa/kSl0djN6lzRFxpfCC HezGJTISKg/J0gZNHiIKCv5bFCrxdJJRU6PqXG1bNM0Ddmo5EuWhw8zw975cpfEV/T w4OcPVlaglhlmST78ExpPgMXj7baG4/LmY+XM2WM= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 0EFAF3858D3C; Sat, 13 May 2023 23:23:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0EFAF3858D3C Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-9661a1ff1e9so1394910666b.1; Sat, 13 May 2023 16:23:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684020229; x=1686612229; 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=dnhltITTP1pkpb+TIJ4s/3JxBKpaLayURSD7DoidDVM=; b=l94lcg2Kzuz/HT5p6ZQPpRLPcl/TGJhCWAWQYK7tNw0EjNqA2LiZHAKEvs7MPrOBzJ WRl3gJVVkwYkOleiPetKzrKNV/Xv9AEEcUGFzNR7MIYssslYpKk39gXmVWYCIV6AFtvx IWIevqeDQbseH+9LxGxwz1iHE2Ny7D2boU6f2BQpR416NOoCIQzwtw8N4l91020xJXbN vBtHpm97l8pZtsitRKJxtTkrSZF8eOfhqyrS+GL4d4rGnWNNlBi87QVbAVTuQOeixeib x8fIBXWfHL3vdNFQdeA1/CUXoixE4k0VG8IPFNqpOn3nDkjB3sDgn2Vb9aTOwIrNEUwL 159Q== X-Gm-Message-State: AC+VfDwPgKlCMnhFqJEi1124x0H/qqZArn7ch05+yndkMBH28f6kn3wH op0AzvJexiGCZaPj37B6x6/FXC4QoeA= X-Received: by 2002:a17:906:7949:b0:969:ffcb:1eb4 with SMTP id l9-20020a170906794900b00969ffcb1eb4mr15598266ejo.2.1684020229093; Sat, 13 May 2023 16:23:49 -0700 (PDT) Received: from nbbrfq ([2001:871:227:ce8b:afc3:c345:e1dd:564e]) by smtp.gmail.com with ESMTPSA id hf27-20020a1709072c5b00b0096557203071sm7321509ejc.217.2023.05.13.16.23.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 May 2023 16:23:48 -0700 (PDT) Received: from b by nbbrfq with local (Exim 4.96) (envelope-from ) id 1pxyaZ-001AmP-39; Sun, 14 May 2023 01:23:47 +0200 To: gcc-patches@gcc.gnu.org Cc: Bernhard Reutner-Fischer Subject: [PATCH 03/14] gcc/config/*: use _P() defines from tree.h Date: Sun, 14 May 2023 01:23:10 +0200 Message-Id: <20230513232321.279733-4-rep.dot.nop@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230513232321.279733-1-rep.dot.nop@gmail.com> References: <20230513232321.279733-1-rep.dot.nop@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Bernhard Reutner-Fischer via Gcc-patches From: Bernhard Reutner-Fischer Reply-To: Bernhard Reutner-Fischer Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765823595378779122?= X-GMAIL-MSGID: =?utf-8?q?1765823595378779122?= From: Bernhard Reutner-Fischer gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_short_vector_p): Use _P defines from tree.h. (aarch64_mangle_type): Ditto. * config/alpha/alpha.cc (alpha_in_small_data_p): Ditto. (alpha_gimplify_va_arg_1): Ditto. * config/arc/arc.cc (arc_encode_section_info): Ditto. (arc_is_aux_reg_p): Ditto. (arc_is_uncached_mem_p): Ditto. (arc_handle_aux_attribute): Ditto. * config/arm/arm.cc (arm_handle_isr_attribute): Ditto. (arm_handle_cmse_nonsecure_call): Ditto. (arm_set_default_type_attributes): Ditto. (arm_is_segment_info_known): Ditto. (arm_mangle_type): Ditto. * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Ditto. * config/avr/avr.cc (avr_lookup_function_attribute1): Ditto. (avr_decl_absdata_p): Ditto. (avr_insert_attributes): Ditto. (avr_section_type_flags): Ditto. (avr_encode_section_info): Ditto. * config/bfin/bfin.cc (bfin_handle_l2_attribute): Ditto. * config/bpf/bpf.cc (bpf_core_compute): Ditto. * config/c6x/c6x.cc (c6x_in_small_data_p): Ditto. * config/csky/csky.cc (csky_handle_isr_attribute): Ditto. (csky_mangle_type): Ditto. * config/darwin-c.cc (darwin_pragma_unused): Ditto. * config/darwin.cc (is_objc_metadata): Ditto. * config/epiphany/epiphany.cc (epiphany_function_ok_for_sibcall): Ditto. * config/epiphany/epiphany.h (ROUND_TYPE_ALIGN): Ditto. * config/frv/frv.cc (frv_emit_movsi): Ditto. * config/gcn/gcn-tree.cc (gcn_lockless_update): Ditto. * config/gcn/gcn.cc (gcn_asm_output_symbol_ref): Ditto. * config/h8300/h8300.cc (h8300_encode_section_info): Ditto. * config/i386/i386-expand.cc: Ditto. * config/i386/i386.cc (type_natural_mode): Ditto. (ix86_function_arg): Ditto. (ix86_data_alignment): Ditto. (ix86_local_alignment): Ditto. (ix86_simd_clone_compute_vecsize_and_simdlen): Ditto. * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Ditto. (i386_pe_type_dllexport_p): Ditto. (i386_pe_adjust_class_at_definition): Ditto. * config/i386/winnt.cc (i386_pe_determine_dllimport_p): Ditto. (i386_pe_binds_local_p): Ditto. (i386_pe_section_type_flags): Ditto. * config/ia64/ia64.cc (ia64_encode_section_info): Ditto. (ia64_gimplify_va_arg): Ditto. (ia64_in_small_data_p): Ditto. * config/iq2000/iq2000.cc (iq2000_function_arg): Ditto. * config/lm32/lm32.cc (lm32_in_small_data_p): Ditto. * config/loongarch/loongarch.cc (loongarch_handle_model_attribute): Ditto. * config/m32c/m32c.cc (m32c_insert_attributes): Ditto. * config/mcore/mcore.cc (mcore_mark_dllimport): Ditto. (mcore_encode_section_info): Ditto. * config/microblaze/microblaze.cc (microblaze_elf_in_small_data_p): Ditto. * config/mips/mips.cc (mips_output_aligned_decl_common): Ditto. * config/mmix/mmix.cc (mmix_encode_section_info): Ditto. * config/nvptx/nvptx.cc (nvptx_encode_section_info): Ditto. (pass_in_memory): Ditto. (nvptx_generate_vector_shuffle): Ditto. (nvptx_lockless_update): Ditto. * config/pa/pa.cc (pa_function_arg_padding): Ditto. (pa_function_value): Ditto. (pa_function_arg): Ditto. * config/pa/pa.h (IN_NAMED_SECTION_P): Ditto. (TEXT_SPACE_P): Ditto. * config/pa/som.h (MAKE_DECL_ONE_ONLY): Ditto. * config/pdp11/pdp11.cc (pdp11_return_in_memory): Ditto. * config/riscv/riscv.cc (riscv_in_small_data_p): Ditto. (riscv_mangle_type): Ditto. * config/rl78/rl78.cc (rl78_insert_attributes): Ditto. (rl78_addsi3_internal): Ditto. * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Ditto. * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Ditto. * config/rs6000/freebsd64.h (ROUND_TYPE_ALIGN): Ditto. * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Ditto. * config/rs6000/rs6000-call.cc (rs6000_function_arg_boundary): Ditto. (rs6000_function_arg_advance_1): Ditto. (rs6000_function_arg): Ditto. (rs6000_pass_by_reference): Ditto. * config/rs6000/rs6000-logue.cc (rs6000_function_ok_for_sibcall): Ditto. * config/rs6000/rs6000.cc (rs6000_data_alignment): Ditto. (rs6000_set_default_type_attributes): Ditto. (rs6000_elf_in_small_data_p): Ditto. (IN_NAMED_SECTION): Ditto. (rs6000_xcoff_encode_section_info): Ditto. (rs6000_function_value): Ditto. (invalid_arg_for_unprototyped_fn): Ditto. * config/s390/s390-c.cc (s390_fn_types_compatible): Ditto. (s390_vec_n_elem): Ditto. * config/s390/s390.cc (s390_check_type_for_vector_abi): Ditto. (s390_function_arg_integer): Ditto. (s390_return_in_memory): Ditto. (s390_encode_section_info): Ditto. * config/sh/sh.cc (sh_gimplify_va_arg_expr): Ditto. (sh_function_value): Ditto. * config/sol2.cc (solaris_insert_attributes): Ditto. * config/sparc/sparc.cc (function_arg_slotno): Ditto. * config/sparc/sparc.h (ROUND_TYPE_ALIGN): Ditto. * config/stormy16/stormy16.cc (xstormy16_encode_section_info): Ditto. (xstormy16_handle_below100_attribute): Ditto. * config/v850/v850.cc (v850_encode_section_info): Ditto. (v850_insert_attributes): Ditto. * config/visium/visium.cc (visium_pass_by_reference): Ditto. (visium_return_in_memory): Ditto. * config/xtensa/xtensa.cc (xtensa_multibss_section_type_flags): Ditto. --- gcc/config/aarch64/aarch64.cc | 4 ++-- gcc/config/alpha/alpha.cc | 6 +++--- gcc/config/arc/arc.cc | 8 ++++---- gcc/config/arm/arm.cc | 16 +++++++--------- gcc/config/arm/unknown-elf.h | 2 +- gcc/config/avr/avr.cc | 11 +++++------ gcc/config/bfin/bfin.cc | 2 +- gcc/config/bpf/bpf.cc | 2 +- gcc/config/c6x/c6x.cc | 4 ++-- gcc/config/csky/csky.cc | 8 +++----- gcc/config/darwin-c.cc | 2 +- gcc/config/darwin.cc | 2 +- gcc/config/epiphany/epiphany.cc | 3 +-- gcc/config/epiphany/epiphany.h | 6 ++---- gcc/config/frv/frv.cc | 4 ++-- gcc/config/gcn/gcn-tree.cc | 2 +- gcc/config/gcn/gcn.cc | 4 ++-- gcc/config/h8300/h8300.cc | 2 +- gcc/config/i386/i386-expand.cc | 2 +- gcc/config/i386/i386.cc | 20 ++++++++------------ gcc/config/i386/winnt-cxx.cc | 12 ++++++------ gcc/config/i386/winnt.cc | 6 +++--- gcc/config/ia64/ia64.cc | 6 +++--- gcc/config/iq2000/iq2000.cc | 8 +++----- gcc/config/lm32/lm32.cc | 2 +- gcc/config/loongarch/loongarch.cc | 2 +- gcc/config/m32c/m32c.cc | 2 +- gcc/config/mcore/mcore.cc | 6 +++--- gcc/config/microblaze/microblaze.cc | 2 +- gcc/config/mips/mips.cc | 2 +- gcc/config/mmix/mmix.cc | 4 ++-- gcc/config/nvptx/nvptx.cc | 8 ++++---- gcc/config/pa/pa.cc | 10 +++++----- gcc/config/pa/pa.h | 4 ++-- gcc/config/pa/som.h | 2 +- gcc/config/pdp11/pdp11.cc | 2 +- gcc/config/riscv/riscv.cc | 4 ++-- gcc/config/rl78/rl78.cc | 4 ++-- gcc/config/rs6000/aix.h | 4 +--- gcc/config/rs6000/darwin.h | 6 ++---- gcc/config/rs6000/freebsd64.h | 4 +--- gcc/config/rs6000/linux64.h | 4 +--- gcc/config/rs6000/rs6000-call.cc | 10 +++++----- gcc/config/rs6000/rs6000-logue.cc | 4 ++-- gcc/config/rs6000/rs6000.cc | 15 +++++++-------- gcc/config/s390/s390-c.cc | 4 ++-- gcc/config/s390/s390.cc | 8 ++++---- gcc/config/sh/sh.cc | 12 ++++++------ gcc/config/sol2.cc | 2 +- gcc/config/sparc/sparc.cc | 2 +- gcc/config/sparc/sparc.h | 4 +--- gcc/config/stormy16/stormy16.cc | 4 ++-- gcc/config/v850/v850.cc | 6 +++--- gcc/config/visium/visium.cc | 4 ++-- gcc/config/xtensa/xtensa.cc | 2 +- 55 files changed, 133 insertions(+), 158 deletions(-) diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 546cb121331..224e614266e 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -20453,7 +20453,7 @@ aarch64_short_vector_p (const_tree type, { poly_int64 size = -1; - if (type && TREE_CODE (type) == VECTOR_TYPE) + if (type && VECTOR_TYPE_P (type)) { if (aarch64_sve::builtin_type_p (type)) return false; @@ -20893,7 +20893,7 @@ aarch64_mangle_type (const_tree type) return "St9__va_list"; /* Half-precision floating point types. */ - if (TREE_CODE (type) == REAL_TYPE && TYPE_PRECISION (type) == 16) + if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16) { if (TYPE_MAIN_VARIANT (type) == float16_type_node) return NULL; diff --git a/gcc/config/alpha/alpha.cc b/gcc/config/alpha/alpha.cc index 1d826085198..360b50e20d4 100644 --- a/gcc/config/alpha/alpha.cc +++ b/gcc/config/alpha/alpha.cc @@ -784,10 +784,10 @@ alpha_in_small_data_p (const_tree exp) return false; /* COMMON symbols are never small data. */ - if (TREE_CODE (exp) == VAR_DECL && DECL_COMMON (exp)) + if (VAR_P (exp) && DECL_COMMON (exp)) return false; - if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp)) + if (VAR_P (exp) && DECL_SECTION_NAME (exp)) { const char *section = DECL_SECTION_NAME (exp); if (strcmp (section, ".sdata") == 0 @@ -6253,7 +6253,7 @@ alpha_gimplify_va_arg_1 (tree type, tree base, tree offset, return build2 (COMPLEX_EXPR, type, real_temp, imag_part); } - else if (TREE_CODE (type) == REAL_TYPE) + else if (SCALAR_FLOAT_TYPE_P (type)) { tree fpaddend, cond, fourtyeight; diff --git a/gcc/config/arc/arc.cc b/gcc/config/arc/arc.cc index b47935a9214..dd012ffa975 100644 --- a/gcc/config/arc/arc.cc +++ b/gcc/config/arc/arc.cc @@ -5784,7 +5784,7 @@ arc_encode_section_info (tree decl, rtx rtl, int first) SYMBOL_REF_FLAGS (symbol) = flags; } - else if (TREE_CODE (decl) == VAR_DECL) + else if (VAR_P (decl)) { rtx symbol = XEXP (rtl, 0); @@ -8935,7 +8935,7 @@ arc_is_aux_reg_p (rtx pat) return false; /* Get the attributes. */ - if (TREE_CODE (addr) == VAR_DECL) + if (VAR_P (addr)) attrs = DECL_ATTRIBUTES (addr); else if (TREE_CODE (addr) == MEM_REF) attrs = TYPE_ATTRIBUTES (TREE_TYPE (TREE_OPERAND (addr, 0))); @@ -11247,7 +11247,7 @@ arc_is_uncached_mem_p (rtx pat) /* Get the attributes. */ if (TREE_CODE (addr) == MEM_REF - || TREE_CODE (addr) == VAR_DECL) + || VAR_P (addr)) { attrs = TYPE_ATTRIBUTES (TREE_TYPE (addr)); if (lookup_attribute ("uncached", attrs)) @@ -11315,7 +11315,7 @@ arc_handle_aux_attribute (tree *node, /* FIXME! add range check. TREE_INT_CST_LOW (arg) */ } - if (TREE_CODE (*node) == VAR_DECL) + if (VAR_P (*node)) { tree fntype = TREE_TYPE (*node); if (fntype && TREE_CODE (fntype) == POINTER_TYPE) diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc index 06e0756e4e8..6f218c96a2e 100644 --- a/gcc/config/arm/arm.cc +++ b/gcc/config/arm/arm.cc @@ -7463,8 +7463,7 @@ arm_handle_isr_attribute (tree *node, tree name, tree args, int flags, } else { - if (TREE_CODE (*node) == FUNCTION_TYPE - || TREE_CODE (*node) == METHOD_TYPE) + if (FUNC_OR_METHOD_TYPE_P (*node)) { if (arm_isr_value (args) == ARM_FT_UNKNOWN) { @@ -7474,8 +7473,7 @@ arm_handle_isr_attribute (tree *node, tree name, tree args, int flags, } } else if (TREE_CODE (*node) == POINTER_TYPE - && (TREE_CODE (TREE_TYPE (*node)) == FUNCTION_TYPE - || TREE_CODE (TREE_TYPE (*node)) == METHOD_TYPE) + && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (*node)) && arm_isr_value (args) != ARM_FT_UNKNOWN) { *node = build_variant_type_copy (*node); @@ -7683,7 +7681,7 @@ arm_handle_cmse_nonsecure_call (tree *node, tree name, { fntype = TREE_TYPE (*node); - if (TREE_CODE (*node) == VAR_DECL || TREE_CODE (*node) == TYPE_DECL) + if (VAR_P (*node) || TREE_CODE (*node) == TYPE_DECL) decl = *node; } else @@ -7804,7 +7802,7 @@ arm_set_default_type_attributes (tree type) /* Add __attribute__ ((long_call)) to all functions, when inside #pragma long_calls or __attribute__ ((short_call)), when inside #pragma no_long_calls. */ - if (TREE_CODE (type) == FUNCTION_TYPE || TREE_CODE (type) == METHOD_TYPE) + if (FUNC_OR_METHOD_TYPE_P (type)) { tree type_attr_list, attr_name; type_attr_list = TYPE_ATTRIBUTES (type); @@ -8452,7 +8450,7 @@ arm_is_segment_info_known (rtx orig, bool *is_readonly) || !DECL_COMMON (SYMBOL_REF_DECL (orig)))) { tree decl = SYMBOL_REF_DECL (orig); - tree init = (TREE_CODE (decl) == VAR_DECL) + tree init = VAR_P (decl) ? DECL_INITIAL (decl) : (TREE_CODE (decl) == CONSTRUCTOR) ? decl : 0; int reloc = 0; @@ -8461,7 +8459,7 @@ arm_is_segment_info_known (rtx orig, bool *is_readonly) if (init && init != error_mark_node) reloc = compute_reloc_for_constant (init); - named_section = TREE_CODE (decl) == VAR_DECL + named_section = VAR_P (decl) && lookup_attribute ("section", DECL_ATTRIBUTES (decl)); readonly = decl_readonly_section (decl, reloc); @@ -30575,7 +30573,7 @@ arm_mangle_type (const_tree type) return "St9__va_list"; /* Half-precision floating point types. */ - if (TREE_CODE (type) == REAL_TYPE && TYPE_PRECISION (type) == 16) + if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16) { if (TYPE_MAIN_VARIANT (type) == float16_type_node) return NULL; diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h index 397ac3f68b9..42b97ce9458 100644 --- a/gcc/config/arm/unknown-elf.h +++ b/gcc/config/arm/unknown-elf.h @@ -51,7 +51,7 @@ /* Return a nonzero value if DECL has a section attribute. */ #define IN_NAMED_SECTION_P(DECL) \ - ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \ + ((TREE_CODE (DECL) == FUNCTION_DECL || VAR_P (DECL)) \ && DECL_SECTION_NAME (DECL) != NULL) #undef ASM_OUTPUT_ALIGNED_BSS diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc index c193430cf07..d5af40f7091 100644 --- a/gcc/config/avr/avr.cc +++ b/gcc/config/avr/avr.cc @@ -961,8 +961,7 @@ avr_lookup_function_attribute1 (const_tree func, const char *name) func = TREE_TYPE (func); } - gcc_assert (TREE_CODE (func) == FUNCTION_TYPE - || TREE_CODE (func) == METHOD_TYPE); + gcc_assert (FUNC_OR_METHOD_TYPE_P (func)); return NULL_TREE != lookup_attribute (name, TYPE_ATTRIBUTES (func)); } @@ -9839,7 +9838,7 @@ avr_progmem_p (tree decl, tree attributes) static bool avr_decl_absdata_p (tree decl, tree attributes) { - return (TREE_CODE (decl) == VAR_DECL + return (VAR_P (decl) && NULL_TREE != lookup_attribute ("absdata", attributes)); } @@ -9976,7 +9975,7 @@ avr_insert_attributes (tree node, tree *attributes) /* Add the section attribute if the variable is in progmem. */ - if (TREE_CODE (node) == VAR_DECL + if (VAR_P (node) && (TREE_STATIC (node) || DECL_EXTERNAL (node)) && avr_progmem_p (node, *attributes)) { @@ -10190,7 +10189,7 @@ avr_section_type_flags (tree decl, const char *name, int reloc) if (startswith (name, ".noinit")) { - if (decl && TREE_CODE (decl) == VAR_DECL + if (decl && VAR_P (decl) && DECL_INITIAL (decl) == NULL_TREE) flags |= SECTION_BSS; /* @nobits */ else @@ -10338,7 +10337,7 @@ avr_encode_section_info (tree decl, rtx rtl, int new_decl_p) if (AVR_TINY && decl - && VAR_DECL == TREE_CODE (decl) + && VAR_P (decl) && MEM_P (rtl) && SYMBOL_REF_P (XEXP (rtl, 0))) { diff --git a/gcc/config/bfin/bfin.cc b/gcc/config/bfin/bfin.cc index c70d2281f06..4320ec26722 100644 --- a/gcc/config/bfin/bfin.cc +++ b/gcc/config/bfin/bfin.cc @@ -4877,7 +4877,7 @@ bfin_handle_l2_attribute (tree *node, tree ARG_UNUSED (name), else set_decl_section_name (decl, ".l2.text"); } - else if (TREE_CODE (decl) == VAR_DECL) + else if (VAR_P (decl)) { if (DECL_SECTION_NAME (decl) != NULL && strcmp (DECL_SECTION_NAME (decl), diff --git a/gcc/config/bpf/bpf.cc b/gcc/config/bpf/bpf.cc index d8693f8cfbe..e0324e1e0e0 100644 --- a/gcc/config/bpf/bpf.cc +++ b/gcc/config/bpf/bpf.cc @@ -1406,7 +1406,7 @@ bpf_core_compute (tree node, vec *accessors) if (TREE_CODE (node) == ADDR_EXPR) node = TREE_OPERAND (node, 0); - else if (TREE_CODE (node) == INDIRECT_REF + else if (INDIRECT_REF_P (node) || TREE_CODE (node) == POINTER_PLUS_EXPR) { accessors->safe_push (0); diff --git a/gcc/config/c6x/c6x.cc b/gcc/config/c6x/c6x.cc index 15be3b23716..0c9cb821f28 100644 --- a/gcc/config/c6x/c6x.cc +++ b/gcc/config/c6x/c6x.cc @@ -855,10 +855,10 @@ c6x_in_small_data_p (const_tree exp) if (TREE_CODE (exp) == FUNCTION_DECL) return false; - if (TREE_CODE (exp) == VAR_DECL && DECL_WEAK (exp)) + if (VAR_P (exp) && DECL_WEAK (exp)) return false; - if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp)) + if (VAR_P (exp) && DECL_SECTION_NAME (exp)) { const char *section = DECL_SECTION_NAME (exp); diff --git a/gcc/config/csky/csky.cc b/gcc/config/csky/csky.cc index ddc6954dad1..b4ee3b273a4 100644 --- a/gcc/config/csky/csky.cc +++ b/gcc/config/csky/csky.cc @@ -6490,8 +6490,7 @@ csky_handle_isr_attribute (tree *node, tree name, tree args, int flags, } else { - if (TREE_CODE (*node) == FUNCTION_TYPE - || TREE_CODE (*node) == METHOD_TYPE) + if (FUNC_OR_METHOD_TYPE_P (*node)) { if (csky_isr_value (args) == CSKY_FT_UNKNOWN) { @@ -6500,8 +6499,7 @@ csky_handle_isr_attribute (tree *node, tree name, tree args, int flags, } } else if (TREE_CODE (*node) == POINTER_TYPE - && (TREE_CODE (TREE_TYPE (*node)) == FUNCTION_TYPE - || TREE_CODE (TREE_TYPE (*node)) == METHOD_TYPE) + && FUNC_OR_METHOD_TYPE_P (TREE_TYPE (*node)) && csky_isr_value (args) != CSKY_FT_UNKNOWN) { *node = build_variant_type_copy (*node); @@ -7319,7 +7317,7 @@ csky_init_builtins (void) static const char * csky_mangle_type (const_tree type) { - if (TREE_CODE (type) == REAL_TYPE + if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16 && TYPE_MAIN_VARIANT (type) != float16_type_node) return "Dh"; diff --git a/gcc/config/darwin-c.cc b/gcc/config/darwin-c.cc index 579b9fa9317..ded0cd46c76 100644 --- a/gcc/config/darwin-c.cc +++ b/gcc/config/darwin-c.cc @@ -139,7 +139,7 @@ darwin_pragma_unused (cpp_reader *pfile ATTRIBUTE_UNUSED) { tree local = lookup_name (decl); if (local && (TREE_CODE (local) == PARM_DECL - || TREE_CODE (local) == VAR_DECL)) + || VAR_P (local))) { TREE_USED (local) = 1; DECL_READ_P (local) = 1; diff --git a/gcc/config/darwin.cc b/gcc/config/darwin.cc index ced2f7e40a6..efbcb3856ca 100644 --- a/gcc/config/darwin.cc +++ b/gcc/config/darwin.cc @@ -1415,7 +1415,7 @@ static tree is_objc_metadata (tree decl) { if (DECL_P (decl) - && (TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == CONST_DECL) + && (VAR_P (decl) || TREE_CODE (decl) == CONST_DECL) && DECL_ATTRIBUTES (decl)) { tree meta = lookup_attribute ("OBJC2META", DECL_ATTRIBUTES (decl)); diff --git a/gcc/config/epiphany/epiphany.cc b/gcc/config/epiphany/epiphany.cc index 20c20e18ea0..60a2845d6d1 100644 --- a/gcc/config/epiphany/epiphany.cc +++ b/gcc/config/epiphany/epiphany.cc @@ -2159,8 +2159,7 @@ epiphany_function_ok_for_sibcall (tree decl, tree exp) gcc_assert (POINTER_TYPE_P (fn_type)); fn_type = TREE_TYPE (fn_type); - gcc_assert (TREE_CODE (fn_type) == FUNCTION_TYPE - || TREE_CODE (fn_type) == METHOD_TYPE); + gcc_assert (FUNC_OR_METHOD_TYPE_P (fn_type)); call_interrupt_p = lookup_attribute ("interrupt", TYPE_ATTRIBUTES (fn_type)) != NULL; } diff --git a/gcc/config/epiphany/epiphany.h b/gcc/config/epiphany/epiphany.h index c742709309e..0baeb298540 100644 --- a/gcc/config/epiphany/epiphany.h +++ b/gcc/config/epiphany/epiphany.h @@ -170,12 +170,10 @@ along with GCC; see the file COPYING3. If not see /* layout_type overrides our ADJUST_ALIGNMENT settings from epiphany-modes.def for vector modes, so we have to override it back. */ #define ROUND_TYPE_ALIGN(TYPE, MANGLED_ALIGN, SPECIFIED_ALIGN) \ - (TREE_CODE (TYPE) == VECTOR_TYPE && !TYPE_USER_ALIGN (TYPE) \ + (VECTOR_TYPE_P (TYPE) && !TYPE_USER_ALIGN (TYPE) \ && SPECIFIED_ALIGN <= GET_MODE_ALIGNMENT (TYPE_MODE (TYPE)) \ ? GET_MODE_ALIGNMENT (TYPE_MODE (TYPE)) \ - : ((TREE_CODE (TYPE) == RECORD_TYPE \ - || TREE_CODE (TYPE) == UNION_TYPE \ - || TREE_CODE (TYPE) == QUAL_UNION_TYPE) \ + : (RECORD_OR_UNION_TYPE_P (TYPE) \ && !TYPE_PACKED (TYPE)) \ ? epiphany_special_round_type_align ((TYPE), (MANGLED_ALIGN), \ (SPECIFIED_ALIGN)) \ diff --git a/gcc/config/frv/frv.cc b/gcc/config/frv/frv.cc index 99f79325cd6..2dbaa75f3dc 100644 --- a/gcc/config/frv/frv.cc +++ b/gcc/config/frv/frv.cc @@ -4061,7 +4061,7 @@ frv_emit_movsi (rtx dest, rtx src) || !DECL_COMMON (SYMBOL_REF_DECL (sym)))) { tree decl = SYMBOL_REF_DECL (sym); - tree init = TREE_CODE (decl) == VAR_DECL + tree init = VAR_P (decl) ? DECL_INITIAL (decl) : TREE_CODE (decl) == CONSTRUCTOR ? decl : 0; @@ -4071,7 +4071,7 @@ frv_emit_movsi (rtx dest, rtx src) if (init && init != error_mark_node) reloc = compute_reloc_for_constant (init); - named_section = TREE_CODE (decl) == VAR_DECL + named_section = VAR_P (decl) && lookup_attribute ("section", DECL_ATTRIBUTES (decl)); readonly = decl_readonly_section (decl, reloc); diff --git a/gcc/config/gcn/gcn-tree.cc b/gcc/config/gcn/gcn-tree.cc index 3c3bf377dd6..c99c1767659 100644 --- a/gcc/config/gcn/gcn-tree.cc +++ b/gcc/config/gcn/gcn-tree.cc @@ -104,7 +104,7 @@ gcn_lockless_update (location_t loc, gimple_stmt_iterator *gsi, tree var_type = TREE_TYPE (var); if (TREE_CODE (var_type) == COMPLEX_TYPE - || TREE_CODE (var_type) == REAL_TYPE) + || SCALAR_FLOAT_TYPE_P (var_type)) code = VIEW_CONVERT_EXPR; if (TYPE_SIZE (var_type) == TYPE_SIZE (long_long_unsigned_type_node)) diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc index 7bb71392c4c..007730da2f9 100644 --- a/gcc/config/gcn/gcn.cc +++ b/gcc/config/gcn/gcn.cc @@ -6523,7 +6523,7 @@ gcn_asm_output_symbol_ref (FILE *file, rtx x) tree decl; if (cfun && (decl = SYMBOL_REF_DECL (x)) != 0 - && TREE_CODE (decl) == VAR_DECL + && VAR_P (decl) && AS_LDS_P (TYPE_ADDR_SPACE (TREE_TYPE (decl)))) { /* LDS symbols (emitted using this hook) are only used at present @@ -6539,7 +6539,7 @@ gcn_asm_output_symbol_ref (FILE *file, rtx x) /* FIXME: See above -- this condition is unreachable. */ if (cfun && (decl = SYMBOL_REF_DECL (x)) != 0 - && TREE_CODE (decl) == VAR_DECL + && VAR_P (decl) && AS_LDS_P (TYPE_ADDR_SPACE (TREE_TYPE (decl)))) fputs ("@abs32", file); } diff --git a/gcc/config/h8300/h8300.cc b/gcc/config/h8300/h8300.cc index c3674933f90..7412c0535fc 100644 --- a/gcc/config/h8300/h8300.cc +++ b/gcc/config/h8300/h8300.cc @@ -5009,7 +5009,7 @@ h8300_encode_section_info (tree decl, rtx rtl, int first) if (TREE_CODE (decl) == FUNCTION_DECL && h8300_funcvec_function_p (decl)) extra_flags = SYMBOL_FLAG_FUNCVEC_FUNCTION; - else if (TREE_CODE (decl) == VAR_DECL + else if (VAR_P (decl) && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) { if (h8300_eightbit_data_p (decl)) diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index 634fe61ba79..0e7966f9b3f 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -14571,7 +14571,7 @@ rdseed_step: op0 = pc_rtx; } else if (TREE_CODE (arg3) == SSA_NAME - && TREE_CODE (TREE_TYPE (arg3)) == VECTOR_TYPE) + && VECTOR_TYPE_P (TREE_TYPE (arg3))) { /* Recognize also when mask is like: __v2df src = _mm_setzero_pd (); diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index b1d08ecdb3d..52ce4d45154 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -1887,7 +1887,7 @@ type_natural_mode (const_tree type, const CUMULATIVE_ARGS *cum, { machine_mode mode = TYPE_MODE (type); - if (TREE_CODE (type) == VECTOR_TYPE && !VECTOR_MODE_P (mode)) + if (VECTOR_TYPE_P (type) && !VECTOR_MODE_P (mode)) { HOST_WIDE_INT size = int_size_in_bytes (type); if ((size == 8 || size == 16 || size == 32 || size == 64) @@ -1904,7 +1904,7 @@ type_natural_mode (const_tree type, const CUMULATIVE_ARGS *cum, if (DECIMAL_FLOAT_MODE_P (innermode)) return mode; - if (TREE_CODE (TREE_TYPE (type)) == REAL_TYPE) + if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (type))) mode = MIN_MODE_VECTOR_FLOAT; else mode = MIN_MODE_VECTOR_INT; @@ -3412,7 +3412,7 @@ ix86_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) /* To simplify the code below, represent vector types with a vector mode even if MMX/SSE are not active. */ - if (arg.type && TREE_CODE (arg.type) == VECTOR_TYPE) + if (arg.type && VECTOR_TYPE_P (arg.type)) mode = type_natural_mode (arg.type, cum, false); if (TARGET_64BIT) @@ -17470,9 +17470,7 @@ ix86_data_alignment (tree type, unsigned int align, bool opt) || TYPE_MODE (type) == TCmode) && align < 128) return 128; } - else if ((TREE_CODE (type) == RECORD_TYPE - || TREE_CODE (type) == UNION_TYPE - || TREE_CODE (type) == QUAL_UNION_TYPE) + else if (RECORD_OR_UNION_TYPE_P (type) && TYPE_FIELDS (type)) { if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64) @@ -17480,7 +17478,7 @@ ix86_data_alignment (tree type, unsigned int align, bool opt) if (ALIGN_MODE_128 (DECL_MODE (TYPE_FIELDS (type))) && align < 128) return 128; } - else if (TREE_CODE (type) == REAL_TYPE || TREE_CODE (type) == VECTOR_TYPE + else if (SCALAR_FLOAT_TYPE_P (type) || VECTOR_TYPE_P (type) || TREE_CODE (type) == INTEGER_TYPE) { if (TYPE_MODE (type) == DFmode && align < 64) @@ -17596,9 +17594,7 @@ ix86_local_alignment (tree exp, machine_mode mode, || TYPE_MODE (type) == TCmode) && align < 128) return 128; } - else if ((TREE_CODE (type) == RECORD_TYPE - || TREE_CODE (type) == UNION_TYPE - || TREE_CODE (type) == QUAL_UNION_TYPE) + else if (RECORD_OR_UNION_TYPE_P (type) && TYPE_FIELDS (type)) { if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64) @@ -17606,7 +17602,7 @@ ix86_local_alignment (tree exp, machine_mode mode, if (ALIGN_MODE_128 (DECL_MODE (TYPE_FIELDS (type))) && align < 128) return 128; } - else if (TREE_CODE (type) == REAL_TYPE || TREE_CODE (type) == VECTOR_TYPE + else if (SCALAR_FLOAT_TYPE_P (type) || VECTOR_TYPE_P (type) || TREE_CODE (type) == INTEGER_TYPE) { @@ -23831,7 +23827,7 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, for 64-bit code), accept that SIMDLEN, otherwise warn and don't emit corresponding clone. */ tree ctype = ret_type; - if (TREE_CODE (ret_type) == VOID_TYPE) + if (VOID_TYPE_P (ret_type)) ctype = base_type; int cnt = GET_MODE_BITSIZE (TYPE_MODE (ctype)) * clonei->simdlen; if (SCALAR_INT_MODE_P (TYPE_MODE (ctype))) diff --git a/gcc/config/i386/winnt-cxx.cc b/gcc/config/i386/winnt-cxx.cc index 9982d986501..6306d830fcf 100644 --- a/gcc/config/i386/winnt-cxx.cc +++ b/gcc/config/i386/winnt-cxx.cc @@ -30,7 +30,7 @@ along with GCC; see the file COPYING3. If not see bool i386_pe_type_dllimport_p (tree decl) { - gcc_assert (TREE_CODE (decl) == VAR_DECL + gcc_assert (VAR_P (decl) || TREE_CODE (decl) == FUNCTION_DECL); if (TARGET_NOP_FUN_DLLIMPORT && TREE_CODE (decl) == FUNCTION_DECL) @@ -54,7 +54,7 @@ i386_pe_type_dllimport_p (tree decl) bool i386_pe_type_dllexport_p (tree decl) { - gcc_assert (TREE_CODE (decl) == VAR_DECL + gcc_assert (VAR_P (decl) || TREE_CODE (decl) == FUNCTION_DECL); /* Avoid exporting compiler-generated default dtors and copy ctors. @@ -118,7 +118,7 @@ i386_pe_adjust_class_at_definition (tree t) /* Check FUNCTION_DECL's and static VAR_DECL's. */ for (member = TYPE_FIELDS (t); member; member = DECL_CHAIN (member)) - if (TREE_CODE (member) == VAR_DECL) + if (VAR_P (member)) maybe_add_dllexport (member); else if (TREE_CODE (member) == FUNCTION_DECL) { @@ -134,7 +134,7 @@ i386_pe_adjust_class_at_definition (tree t) /* Check vtables */ for (member = CLASSTYPE_VTABLES (t); member; member = DECL_CHAIN (member)) - if (TREE_CODE (member) == VAR_DECL) + if (VAR_P (member)) maybe_add_dllexport (member); } @@ -150,7 +150,7 @@ i386_pe_adjust_class_at_definition (tree t) /* Check FUNCTION_DECL's and static VAR_DECL's. */ for (member = TYPE_FIELDS (t); member; member = DECL_CHAIN (member)) - if (TREE_CODE (member) == VAR_DECL) + if (VAR_P (member)) maybe_add_dllimport (member); else if (TREE_CODE (member) == FUNCTION_DECL) { @@ -166,7 +166,7 @@ i386_pe_adjust_class_at_definition (tree t) /* Check vtables */ for (member = CLASSTYPE_VTABLES (t); member; member = DECL_CHAIN (member)) - if (TREE_CODE (member) == VAR_DECL) + if (VAR_P (member)) maybe_add_dllimport (member); /* We leave typeinfo tables alone. We can't mark TI objects as diff --git a/gcc/config/i386/winnt.cc b/gcc/config/i386/winnt.cc index 6b64eca3316..83a21c67704 100644 --- a/gcc/config/i386/winnt.cc +++ b/gcc/config/i386/winnt.cc @@ -147,7 +147,7 @@ i386_pe_determine_dllimport_p (tree decl) out-of-class definition of static data. */ assoc = associated_type (decl); if (assoc && lookup_attribute ("dllimport", TYPE_ATTRIBUTES (assoc)) - && TREE_CODE (decl) == VAR_DECL + && VAR_P (decl) && TREE_STATIC (decl) && TREE_PUBLIC (decl) && !DECL_EXTERNAL (decl) /* vtable's are linkonce constants, so defining a vtable is not @@ -335,7 +335,7 @@ i386_pe_encode_section_info (tree decl, rtx rtl, int first) bool i386_pe_binds_local_p (const_tree exp) { - if ((TREE_CODE (exp) == VAR_DECL || TREE_CODE (exp) == FUNCTION_DECL) + if ((VAR_P (exp) || TREE_CODE (exp) == FUNCTION_DECL) && DECL_DLLIMPORT_P (exp)) return false; @@ -459,7 +459,7 @@ i386_pe_section_type_flags (tree decl, const char *, int reloc) { flags = SECTION_WRITE; - if (decl && TREE_CODE (decl) == VAR_DECL + if (decl && VAR_P (decl) && lookup_attribute ("shared", DECL_ATTRIBUTES (decl))) flags |= SECTION_PE_SHARED; } diff --git a/gcc/config/ia64/ia64.cc b/gcc/config/ia64/ia64.cc index f32efb3bd80..92f34dd1ee7 100644 --- a/gcc/config/ia64/ia64.cc +++ b/gcc/config/ia64/ia64.cc @@ -873,7 +873,7 @@ ia64_encode_section_info (tree decl, rtx rtl, int first) default_encode_section_info (decl, rtl, first); /* Careful not to prod global register variables. */ - if (TREE_CODE (decl) == VAR_DECL + if (VAR_P (decl) && GET_CODE (DECL_RTL (decl)) == MEM && GET_CODE (XEXP (DECL_RTL (decl), 0)) == SYMBOL_REF && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) @@ -5156,7 +5156,7 @@ ia64_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p, the next even boundary. Integer and floating point arguments do so if they are larger than 8 bytes, whether or not they are also aligned larger than 8 bytes. */ - if ((TREE_CODE (type) == REAL_TYPE || TREE_CODE (type) == INTEGER_TYPE) + if ((SCALAR_FLOAT_TYPE_P (type) || TREE_CODE (type) == INTEGER_TYPE) ? int_size_in_bytes (type) > 8 : TYPE_ALIGN (type) > 8 * BITS_PER_UNIT) { tree t = fold_build_pointer_plus_hwi (valist, 2 * UNITS_PER_WORD - 1); @@ -10003,7 +10003,7 @@ ia64_in_small_data_p (const_tree exp) if (TREE_CODE (exp) == FUNCTION_DECL) return false; - if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp)) + if (VAR_P (exp) && DECL_SECTION_NAME (exp)) { const char *section = DECL_SECTION_NAME (exp); diff --git a/gcc/config/iq2000/iq2000.cc b/gcc/config/iq2000/iq2000.cc index 067154a0a0d..733fecac2b7 100644 --- a/gcc/config/iq2000/iq2000.cc +++ b/gcc/config/iq2000/iq2000.cc @@ -1226,9 +1226,7 @@ iq2000_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) int bias = 0; unsigned int *arg_words = &cum->arg_words; int struct_p = (type != 0 - && (TREE_CODE (type) == RECORD_TYPE - || TREE_CODE (type) == UNION_TYPE - || TREE_CODE (type) == QUAL_UNION_TYPE)); + && RECORD_OR_UNION_TYPE_P (type)); if (TARGET_DEBUG_D_MODE) { @@ -1304,7 +1302,7 @@ iq2000_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) if (TREE_CODE (field) == FIELD_DECL - && TREE_CODE (TREE_TYPE (field)) == REAL_TYPE + && SCALAR_FLOAT_TYPE_P (TREE_TYPE (field)) && TYPE_PRECISION (TREE_TYPE (field)) == BITS_PER_WORD && tree_fits_shwi_p (bit_position (field)) && int_bit_position (field) % BITS_PER_WORD == 0) @@ -1346,7 +1344,7 @@ iq2000_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) if (field && int_bit_position (field) == bitpos - && TREE_CODE (TREE_TYPE (field)) == REAL_TYPE + && SCALAR_FLOAT_TYPE_P (TREE_TYPE (field)) && TYPE_PRECISION (TREE_TYPE (field)) == BITS_PER_WORD) reg = gen_rtx_REG (DFmode, regno++); else diff --git a/gcc/config/lm32/lm32.cc b/gcc/config/lm32/lm32.cc index 37a6eb86da0..6528358009d 100644 --- a/gcc/config/lm32/lm32.cc +++ b/gcc/config/lm32/lm32.cc @@ -787,7 +787,7 @@ lm32_in_small_data_p (const_tree exp) if (TREE_CODE (exp) == FUNCTION_DECL) return false; - if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp)) + if (VAR_P (exp) && DECL_SECTION_NAME (exp)) { const char *section = DECL_SECTION_NAME (exp); if (strcmp (section, ".sdata") == 0 || strcmp (section, ".sbss") == 0) diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc index 7f4e0e59573..eb73d11b869 100644 --- a/gcc/config/loongarch/loongarch.cc +++ b/gcc/config/loongarch/loongarch.cc @@ -6535,7 +6535,7 @@ loongarch_handle_model_attribute (tree *node, tree name, tree arg, int, bool *no_add_attrs) { tree decl = *node; - if (TREE_CODE (decl) == VAR_DECL) + if (VAR_P (decl)) { if (DECL_THREAD_LOCAL_P (decl)) { diff --git a/gcc/config/m32c/m32c.cc b/gcc/config/m32c/m32c.cc index e0d06f833d3..65971d62990 100644 --- a/gcc/config/m32c/m32c.cc +++ b/gcc/config/m32c/m32c.cc @@ -3027,7 +3027,7 @@ m32c_insert_attributes (tree node ATTRIBUTE_UNUSED, unsigned addr; /* See if we need to make #pragma address variables volatile. */ - if (TREE_CODE (node) == VAR_DECL) + if (VAR_P (node)) { const char *name = IDENTIFIER_POINTER (DECL_NAME (node)); if (m32c_get_pragma_address (name, &addr)) diff --git a/gcc/config/mcore/mcore.cc b/gcc/config/mcore/mcore.cc index e800af78e14..92e7f960f75 100644 --- a/gcc/config/mcore/mcore.cc +++ b/gcc/config/mcore/mcore.cc @@ -2953,7 +2953,7 @@ mcore_mark_dllimport (tree decl) and that would be a good question. */ /* Imported variables can't be initialized. */ - if (TREE_CODE (decl) == VAR_DECL + if (VAR_P (decl) && !DECL_VIRTUAL_P (decl) && DECL_INITIAL (decl)) { @@ -2963,7 +2963,7 @@ mcore_mark_dllimport (tree decl) /* `extern' needn't be specified with dllimport. Specify `extern' now and hope for the best. Sigh. */ - if (TREE_CODE (decl) == VAR_DECL + if (VAR_P (decl) /* ??? Is this test for vtables needed? */ && !DECL_VIRTUAL_P (decl)) { @@ -3024,7 +3024,7 @@ mcore_encode_section_info (tree decl, rtx rtl ATTRIBUTE_UNUSED, int first ATTRIB a subsequent definition nullified that. The attribute is gone but DECL_RTL still has @i.__imp_foo. We need to remove that. */ else if ((TREE_CODE (decl) == FUNCTION_DECL - || TREE_CODE (decl) == VAR_DECL) + || VAR_P (decl)) && DECL_RTL (decl) != NULL_RTX && GET_CODE (DECL_RTL (decl)) == MEM && GET_CODE (XEXP (DECL_RTL (decl), 0)) == MEM diff --git a/gcc/config/microblaze/microblaze.cc b/gcc/config/microblaze/microblaze.cc index ebe78304f89..cbabf1af712 100644 --- a/gcc/config/microblaze/microblaze.cc +++ b/gcc/config/microblaze/microblaze.cc @@ -3232,7 +3232,7 @@ microblaze_elf_in_small_data_p (const_tree decl) if (TREE_CODE (decl) == FUNCTION_DECL) return false; - if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl)) + if (VAR_P (decl) && DECL_SECTION_NAME (decl)) { const char *section = DECL_SECTION_NAME (decl); if (strcmp (section, ".sdata") == 0 diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc index ca822758b41..ca491b981a3 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -9838,7 +9838,7 @@ mips_output_aligned_decl_common (FILE *stream, tree decl, const char *name, .rdata then don't put them in .comm. */ if (TARGET_EMBEDDED_DATA && TARGET_UNINIT_CONST_IN_RODATA - && TREE_CODE (decl) == VAR_DECL + && VAR_P (decl) && TREE_READONLY (decl) && (DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node)) { diff --git a/gcc/config/mmix/mmix.cc b/gcc/config/mmix/mmix.cc index eda2959adb9..1d36306fdb6 100644 --- a/gcc/config/mmix/mmix.cc +++ b/gcc/config/mmix/mmix.cc @@ -1262,7 +1262,7 @@ static void mmix_encode_section_info (tree decl, rtx rtl, int first) { /* Test for an external declaration, and do nothing if it is one. */ - if ((TREE_CODE (decl) == VAR_DECL + if ((VAR_P (decl) && (DECL_EXTERNAL (decl) || TREE_PUBLIC (decl))) || (TREE_CODE (decl) == FUNCTION_DECL && TREE_PUBLIC (decl))) ; @@ -1291,7 +1291,7 @@ mmix_encode_section_info (tree decl, rtx rtl, int first) For now, functions and things we know or have been told are constant. */ if (TREE_CODE (decl) == FUNCTION_DECL || TREE_CONSTANT (decl) - || (TREE_CODE (decl) == VAR_DECL + || (VAR_P (decl) && TREE_READONLY (decl) && !TREE_SIDE_EFFECTS (decl) && (!DECL_INITIAL (decl) diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc index 89349dae9e6..d76c0bbce2f 100644 --- a/gcc/config/nvptx/nvptx.cc +++ b/gcc/config/nvptx/nvptx.cc @@ -452,7 +452,7 @@ nvptx_encode_section_info (tree decl, rtx rtl, int first) if (TREE_CONSTANT (decl)) area = DATA_AREA_CONST; - else if (TREE_CODE (decl) == VAR_DECL) + else if (VAR_P (decl)) { if (lookup_attribute ("shared", DECL_ATTRIBUTES (decl))) { @@ -635,7 +635,7 @@ pass_in_memory (machine_mode mode, const_tree type, bool for_return) { if (AGGREGATE_TYPE_P (type)) return true; - if (TREE_CODE (type) == VECTOR_TYPE) + if (VECTOR_TYPE_P (type)) return true; } @@ -6699,7 +6699,7 @@ nvptx_generate_vector_shuffle (location_t loc, if (TREE_CODE (var_type) == COMPLEX_TYPE) var_type = TREE_TYPE (var_type); - if (TREE_CODE (var_type) == REAL_TYPE) + if (SCALAR_FLOAT_TYPE_P (var_type)) code = VIEW_CONVERT_EXPR; if (TYPE_SIZE (var_type) @@ -6789,7 +6789,7 @@ nvptx_lockless_update (location_t loc, gimple_stmt_iterator *gsi, tree var_type = TREE_TYPE (var); if (TREE_CODE (var_type) == COMPLEX_TYPE - || TREE_CODE (var_type) == REAL_TYPE) + || SCALAR_FLOAT_TYPE_P (var_type)) code = VIEW_CONVERT_EXPR; if (TYPE_SIZE (var_type) == TYPE_SIZE (long_long_unsigned_type_node)) diff --git a/gcc/config/pa/pa.cc b/gcc/config/pa/pa.cc index db633b275e5..0fa9e5fd632 100644 --- a/gcc/config/pa/pa.cc +++ b/gcc/config/pa/pa.cc @@ -6387,7 +6387,7 @@ pa_function_arg_padding (machine_mode mode, const_tree type) && type && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == COMPLEX_TYPE - || TREE_CODE (type) == VECTOR_TYPE))) + || VECTOR_TYPE_P (type)))) { /* Return PAD_NONE if justification is not required. */ if (type @@ -9660,7 +9660,7 @@ pa_function_value (const_tree valtype, if (AGGREGATE_TYPE_P (valtype) || TREE_CODE (valtype) == COMPLEX_TYPE - || TREE_CODE (valtype) == VECTOR_TYPE) + || VECTOR_TYPE_P (valtype)) { HOST_WIDE_INT valsize = int_size_in_bytes (valtype); @@ -9709,7 +9709,7 @@ pa_function_value (const_tree valtype, else valmode = TYPE_MODE (valtype); - if (TREE_CODE (valtype) == REAL_TYPE + if (SCALAR_FLOAT_TYPE_P (valtype) && !AGGREGATE_TYPE_P (valtype) && TYPE_MODE (valtype) != TFmode && !TARGET_SOFT_FLOAT) @@ -9828,7 +9828,7 @@ pa_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) || mode == BLKmode || (type && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == COMPLEX_TYPE - || TREE_CODE (type) == VECTOR_TYPE))) + || VECTOR_TYPE_P (type)))) { /* Double-extended precision (80-bit), quad-precision (128-bit) and aggregates including complex numbers are aligned on @@ -9888,7 +9888,7 @@ pa_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) if (mode == BLKmode || (type && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == COMPLEX_TYPE - || TREE_CODE (type) == VECTOR_TYPE))) + || VECTOR_TYPE_P (type)))) { rtx loc = gen_rtx_EXPR_LIST (VOIDmode, gen_rtx_REG (DImode, gpr_reg_base), diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 6e29be282ad..e65af522966 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -930,7 +930,7 @@ do { \ /* Return a nonzero value if DECL has a section attribute. */ #define IN_NAMED_SECTION_P(DECL) \ - ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \ + ((TREE_CODE (DECL) == FUNCTION_DECL || VAR_P (DECL)) \ && DECL_SECTION_NAME (DECL) != NULL) /* Define this macro if references to a symbol must be treated @@ -952,7 +952,7 @@ do { \ #define TEXT_SPACE_P(DECL)\ (TREE_CODE (DECL) == FUNCTION_DECL \ - || (TREE_CODE (DECL) == VAR_DECL \ + || (VAR_P (DECL) \ && TREE_READONLY (DECL) && ! TREE_SIDE_EFFECTS (DECL) \ && (! DECL_INITIAL (DECL) || ! pa_reloc_needed (DECL_INITIAL (DECL))) \ && !flag_pic) \ diff --git a/gcc/config/pa/som.h b/gcc/config/pa/som.h index eaa0ee31105..5999aa37b2a 100644 --- a/gcc/config/pa/som.h +++ b/gcc/config/pa/som.h @@ -287,7 +287,7 @@ do { \ initialized variables and functions. */ #define MAKE_DECL_ONE_ONLY(DECL) \ do { \ - if (TREE_CODE (DECL) == VAR_DECL \ + if (VAR_P (DECL) \ && (DECL_INITIAL (DECL) == 0 \ || DECL_INITIAL (DECL) == error_mark_node)) \ DECL_COMMON (DECL) = 1; \ diff --git a/gcc/config/pdp11/pdp11.cc b/gcc/config/pdp11/pdp11.cc index 4af26f8cd70..f6dd841f184 100644 --- a/gcc/config/pdp11/pdp11.cc +++ b/gcc/config/pdp11/pdp11.cc @@ -1881,7 +1881,7 @@ pdp11_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED) in registers. The rest go into memory. */ return (TYPE_MODE (type) == DImode || (FLOAT_MODE_P (TYPE_MODE (type)) && ! TARGET_AC0) - || TREE_CODE (type) == VECTOR_TYPE + || VECTOR_TYPE_P (type) || COMPLEX_MODE_P (TYPE_MODE (type))); } diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index 8684271f8ac..c3e6d5f5cd6 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -4704,7 +4704,7 @@ riscv_in_small_data_p (const_tree x) if (TREE_CODE (x) == STRING_CST || TREE_CODE (x) == FUNCTION_DECL) return false; - if (TREE_CODE (x) == VAR_DECL && DECL_SECTION_NAME (x)) + if (VAR_P (x) && DECL_SECTION_NAME (x)) { const char *sec = DECL_SECTION_NAME (x); return strcmp (sec, ".sdata") == 0 || strcmp (sec, ".sbss") == 0; @@ -7014,7 +7014,7 @@ static const char * riscv_mangle_type (const_tree type) { /* Half-precision float, _Float16 is "DF16_". */ - if (TREE_CODE (type) == REAL_TYPE && TYPE_PRECISION (type) == 16) + if (SCALAR_FLOAT_TYPE_P (type) && TYPE_PRECISION (type) == 16) return "DF16_"; /* Mangle all vector type for vector extension. */ diff --git a/gcc/config/rl78/rl78.cc b/gcc/config/rl78/rl78.cc index 7ed28d35883..9083096c4ae 100644 --- a/gcc/config/rl78/rl78.cc +++ b/gcc/config/rl78/rl78.cc @@ -4724,7 +4724,7 @@ static void rl78_insert_attributes (tree decl, tree *attributes ATTRIBUTE_UNUSED) { if (TARGET_ES0 - && TREE_CODE (decl) == VAR_DECL + && VAR_P (decl) && TREE_READONLY (decl) && TREE_ADDRESSABLE (decl) && TYPE_ADDR_SPACE (TREE_TYPE (decl)) == ADDR_SPACE_GENERIC) @@ -4880,7 +4880,7 @@ rl78_addsi3_internal (rtx * operands, unsigned int alternative) this address. So we can skip adding in the high bytes. */ if (TARGET_ES0 && GET_CODE (operands[2]) == SYMBOL_REF - && TREE_CODE (SYMBOL_REF_DECL (operands[2])) == VAR_DECL + && VAR_P (SYMBOL_REF_DECL (operands[2])) && TREE_READONLY (SYMBOL_REF_DECL (operands[2])) && ! TREE_SIDE_EFFECTS (SYMBOL_REF_DECL (operands[2]))) return "movw ax, %h1\n\taddw ax, %h2\n\tmovw %h0, ax"; diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h index 69db93ef47b..7b01ba9dc5b 100644 --- a/gcc/config/rs6000/aix.h +++ b/gcc/config/rs6000/aix.h @@ -228,9 +228,7 @@ /* AIX increases natural record alignment to doubleword if the first field is an FP double while the FP fields remain word aligned. */ #define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \ - ((TREE_CODE (STRUCT) == RECORD_TYPE \ - || TREE_CODE (STRUCT) == UNION_TYPE \ - || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \ + (RECORD_OR_UNION_TYPE_P (STRUCT) \ && TARGET_ALIGN_NATURAL == 0 \ ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \ : MAX ((COMPUTED), (SPECIFIED))) diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index 4d5d6f6d5a8..bf9dfaf2f34 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -427,12 +427,10 @@ /* Darwin increases natural record alignment to doubleword if the first field is an FP double while the FP fields remain word aligned. */ #define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \ - ((TREE_CODE (STRUCT) == RECORD_TYPE \ - || TREE_CODE (STRUCT) == UNION_TYPE \ - || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \ + (RECORD_OR_UNION_TYPE_P (STRUCT) \ && TARGET_ALIGN_NATURAL == 0 \ ? darwin_rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \ - : (TREE_CODE (STRUCT) == VECTOR_TYPE \ + : (VECTOR_TYPE_P (STRUCT) \ && ALTIVEC_VECTOR_MODE (TYPE_MODE (STRUCT))) \ ? MAX (MAX ((COMPUTED), (SPECIFIED)), 128) \ : MAX ((COMPUTED), (SPECIFIED))) diff --git a/gcc/config/rs6000/freebsd64.h b/gcc/config/rs6000/freebsd64.h index 111aa14bf9d..918d6c2ce5a 100644 --- a/gcc/config/rs6000/freebsd64.h +++ b/gcc/config/rs6000/freebsd64.h @@ -140,9 +140,7 @@ extern int dot_symbols; #undef ROUND_TYPE_ALIGN #define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \ ((TARGET_64BIT \ - && (TREE_CODE (STRUCT) == RECORD_TYPE \ - || TREE_CODE (STRUCT) == UNION_TYPE \ - || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \ + && RECORD_OR_UNION_TYPE_P (STRUCT) \ && TARGET_ALIGN_NATURAL == 0) \ ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \ : MAX ((COMPUTED), (SPECIFIED))) diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h index 6e4acaf00c2..98b7255c95f 100644 --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h @@ -224,9 +224,7 @@ extern int dot_symbols; #undef ROUND_TYPE_ALIGN #define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \ ((TARGET_64BIT \ - && (TREE_CODE (STRUCT) == RECORD_TYPE \ - || TREE_CODE (STRUCT) == UNION_TYPE \ - || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \ + && RECORD_OR_UNION_TYPE_P (STRUCT) \ && TARGET_ALIGN_NATURAL == 0) \ ? rs6000_special_round_type_align (STRUCT, COMPUTED, SPECIFIED) \ : MAX ((COMPUTED), (SPECIFIED))) diff --git a/gcc/config/rs6000/rs6000-call.cc b/gcc/config/rs6000/rs6000-call.cc index 214613e083e..5384c10b986 100644 --- a/gcc/config/rs6000/rs6000-call.cc +++ b/gcc/config/rs6000/rs6000-call.cc @@ -826,12 +826,12 @@ rs6000_function_arg_boundary (machine_mode mode, const_tree type) return 64; else if (FLOAT128_VECTOR_P (mode)) return 128; - else if (type && TREE_CODE (type) == VECTOR_TYPE + else if (type && VECTOR_TYPE_P (type) && int_size_in_bytes (type) >= 8 && int_size_in_bytes (type) < 16) return 64; else if (ALTIVEC_OR_VSX_VECTOR_MODE (elt_mode) - || (type && TREE_CODE (type) == VECTOR_TYPE + || (type && VECTOR_TYPE_P (type) && int_size_in_bytes (type) >= 16)) return 128; @@ -1094,7 +1094,7 @@ rs6000_function_arg_advance_1 (CUMULATIVE_ARGS *cum, machine_mode mode, if (TARGET_ALTIVEC_ABI && (ALTIVEC_OR_VSX_VECTOR_MODE (elt_mode) - || (type && TREE_CODE (type) == VECTOR_TYPE + || (type && VECTOR_TYPE_P (type) && int_size_in_bytes (type) == 16))) { bool stack = false; @@ -1699,7 +1699,7 @@ rs6000_function_arg (cumulative_args_t cum_v, const function_arg_info &arg) } else if (TARGET_ALTIVEC_ABI && (ALTIVEC_OR_VSX_VECTOR_MODE (mode) - || (type && TREE_CODE (type) == VECTOR_TYPE + || (type && VECTOR_TYPE_P (type) && int_size_in_bytes (type) == 16))) { if (named || abi == ABI_V4) @@ -2017,7 +2017,7 @@ rs6000_pass_by_reference (cumulative_args_t, const function_arg_info &arg) } /* Pass synthetic vectors in memory. */ - if (TREE_CODE (arg.type) == VECTOR_TYPE + if (VECTOR_TYPE_P (arg.type) && int_size_in_bytes (arg.type) > (TARGET_ALTIVEC_ABI ? 16 : 8)) { static bool warned_for_pass_big_vectors = false; diff --git a/gcc/config/rs6000/rs6000-logue.cc b/gcc/config/rs6000/rs6000-logue.cc index d6c9c6e5b52..bc6b153b59f 100644 --- a/gcc/config/rs6000/rs6000-logue.cc +++ b/gcc/config/rs6000/rs6000-logue.cc @@ -1171,12 +1171,12 @@ rs6000_function_ok_for_sibcall (tree decl, tree exp) prototype, so the argument type info must be available here. */ FOREACH_FUNCTION_ARGS(fntype, type, args_iter) - if (TREE_CODE (type) == VECTOR_TYPE + if (VECTOR_TYPE_P (type) && ALTIVEC_OR_VSX_VECTOR_MODE (TYPE_MODE (type))) nvreg++; FOREACH_FUNCTION_ARGS(TREE_TYPE (current_function_decl), type, args_iter) - if (TREE_CODE (type) == VECTOR_TYPE + if (VECTOR_TYPE_P (type) && ALTIVEC_OR_VSX_VECTOR_MODE (TYPE_MODE (type))) nvreg--; diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index 3f129ea37d2..29ed0da6e20 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -8059,7 +8059,7 @@ rs6000_data_alignment (tree type, unsigned int align, enum data_align how) { if (how != align_opt) { - if (TREE_CODE (type) == VECTOR_TYPE && align < 128) + if (VECTOR_TYPE_P (type) && align < 128) align = 128; } @@ -20397,8 +20397,7 @@ static void rs6000_set_default_type_attributes (tree type) { if (rs6000_default_long_calls - && (TREE_CODE (type) == FUNCTION_TYPE - || TREE_CODE (type) == METHOD_TYPE)) + && FUNC_OR_METHOD_TYPE_P (type)) TYPE_ATTRIBUTES (type) = tree_cons (get_identifier ("longcall"), NULL_TREE, TYPE_ATTRIBUTES (type)); @@ -20640,7 +20639,7 @@ rs6000_elf_in_small_data_p (const_tree decl) if (TREE_CODE (decl) == FUNCTION_DECL) return false; - if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl)) + if (VAR_P (decl) && DECL_SECTION_NAME (decl)) { const char *section = DECL_SECTION_NAME (decl); if (compare_section_name (section, ".sdata") @@ -21364,7 +21363,7 @@ rs6000_xcoff_asm_named_section (const char *name, unsigned int flags, } #define IN_NAMED_SECTION(DECL) \ - ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \ + ((TREE_CODE (DECL) == FUNCTION_DECL || VAR_P (DECL)) \ && DECL_SECTION_NAME (DECL) != NULL) static section * @@ -21855,7 +21854,7 @@ rs6000_xcoff_encode_section_info (tree decl, rtx rtl, int first) flags = SYMBOL_REF_FLAGS (symbol); - if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL_P (decl)) + if (VAR_P (decl) && DECL_THREAD_LOCAL_P (decl)) flags &= ~SYMBOL_FLAG_HAS_BLOCK_INFO; SYMBOL_REF_FLAGS (symbol) = flags; @@ -23736,7 +23735,7 @@ rs6000_function_value (const_tree valtype, /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same return register is used in both cases, and we won't see V2DImode/V2DFmode for pure altivec, combine the two cases. */ - else if ((TREE_CODE (valtype) == VECTOR_TYPE || VECTOR_ALIGNMENT_P (mode)) + else if ((VECTOR_TYPE_P (valtype) || VECTOR_ALIGNMENT_P (mode)) && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI && ALTIVEC_OR_VSX_VECTOR_MODE (mode)) regno = ALTIVEC_ARG_RETURN; @@ -24116,7 +24115,7 @@ invalid_arg_for_unprototyped_fn (const_tree typelist, const_tree funcdecl, const { return (!rs6000_darwin64_abi && typelist == 0 - && TREE_CODE (TREE_TYPE (val)) == VECTOR_TYPE + && VECTOR_TYPE_P (TREE_TYPE (val)) && (funcdecl == NULL_TREE || (TREE_CODE (funcdecl) == FUNCTION_DECL && DECL_BUILT_IN_CLASS (funcdecl) != BUILT_IN_MD))) diff --git a/gcc/config/s390/s390-c.cc b/gcc/config/s390/s390-c.cc index 56e77b69993..269f4f8e978 100644 --- a/gcc/config/s390/s390-c.cc +++ b/gcc/config/s390/s390-c.cc @@ -781,7 +781,7 @@ s390_fn_types_compatible (enum s390_builtin_ov_type_index typeindex, tree in_arg = (*arglist)[i]; tree in_type = TREE_TYPE (in_arg); - if (TREE_CODE (b_arg_type) == VECTOR_TYPE) + if (VECTOR_TYPE_P (b_arg_type)) { /* Vector types have to match precisely. */ if (b_arg_type != in_type @@ -854,7 +854,7 @@ s390_vec_n_elem (tree fndecl) tree b_arg_chain; int n_elem = -1; - if (TREE_CODE (TREE_TYPE (TREE_TYPE (fndecl))) == VECTOR_TYPE) + if (VECTOR_TYPE_P (TREE_TYPE (TREE_TYPE (fndecl)))) n_elem = TYPE_VECTOR_SUBPARTS (TREE_TYPE (TREE_TYPE ((fndecl)))); for (b_arg_chain = TYPE_ARG_TYPES (TREE_TYPE (fndecl)); diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc index 505de995da8..4fb4c45c497 100644 --- a/gcc/config/s390/s390.cc +++ b/gcc/config/s390/s390.cc @@ -604,7 +604,7 @@ s390_check_type_for_vector_abi (const_tree type, bool arg_p, bool in_struct_p) true here. */ s390_check_type_for_vector_abi (TREE_TYPE (type), arg_p, in_struct_p); } - else if (TREE_CODE (type) == FUNCTION_TYPE || TREE_CODE (type) == METHOD_TYPE) + else if (FUNC_OR_METHOD_TYPE_P (type)) { tree arg_chain; @@ -12515,7 +12515,7 @@ s390_function_arg_integer (machine_mode mode, const_tree type) || POINTER_TYPE_P (type) || TREE_CODE (type) == NULLPTR_TYPE || TREE_CODE (type) == OFFSET_TYPE - || (TARGET_SOFT_FLOAT && TREE_CODE (type) == REAL_TYPE)) + || (TARGET_SOFT_FLOAT && SCALAR_FLOAT_TYPE_P (type))) return true; /* We also accept structs of size 1, 2, 4, 8 that are not @@ -12684,7 +12684,7 @@ s390_return_in_memory (const_tree type, const_tree fundecl ATTRIBUTE_UNUSED) if (INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type) || TREE_CODE (type) == OFFSET_TYPE - || TREE_CODE (type) == REAL_TYPE) + || SCALAR_FLOAT_TYPE_P (type)) return int_size_in_bytes (type) > 8; /* vector types which fit into a VR. */ @@ -13451,7 +13451,7 @@ s390_encode_section_info (tree decl, rtx rtl, int first) { default_encode_section_info (decl, rtl, first); - if (TREE_CODE (decl) == VAR_DECL) + if (VAR_P (decl)) { /* Store the alignment to be able to check if we can use a larl/load-relative instruction. We only handle the cases diff --git a/gcc/config/sh/sh.cc b/gcc/config/sh/sh.cc index cf6188bd19d..938f7aa6281 100644 --- a/gcc/config/sh/sh.cc +++ b/gcc/config/sh/sh.cc @@ -7697,7 +7697,7 @@ sh_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, eff_type = type; while (TREE_CODE (eff_type) == RECORD_TYPE && (member = find_sole_member (eff_type)) - && (TREE_CODE (TREE_TYPE (member)) == REAL_TYPE + && (SCALAR_FLOAT_TYPE_P (TREE_TYPE (member)) || TREE_CODE (TREE_TYPE (member)) == COMPLEX_TYPE || TREE_CODE (TREE_TYPE (member)) == RECORD_TYPE)) { @@ -7718,14 +7718,14 @@ sh_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, bool pass_as_float; if (TARGET_FPU_DOUBLE) { - pass_as_float = ((TREE_CODE (eff_type) == REAL_TYPE && size <= 8) + pass_as_float = ((SCALAR_FLOAT_TYPE_P (eff_type) && size <= 8) || (TREE_CODE (eff_type) == COMPLEX_TYPE - && TREE_CODE (TREE_TYPE (eff_type)) == REAL_TYPE + && SCALAR_FLOAT_TYPE_P (TREE_TYPE (eff_type)) && size <= 16)); } else { - pass_as_float = (TREE_CODE (eff_type) == REAL_TYPE && size == 4); + pass_as_float = (SCALAR_FLOAT_TYPE_P (eff_type) && size == 4); } addr = create_tmp_var (pptr_type_node); @@ -7738,7 +7738,7 @@ sh_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, { tree next_fp_tmp = create_tmp_var (TREE_TYPE (f_next_fp)); tree cmp; - bool is_double = size == 8 && TREE_CODE (eff_type) == REAL_TYPE; + bool is_double = size == 8 && SCALAR_FLOAT_TYPE_P (eff_type); tmp = build1 (ADDR_EXPR, pptr_type_node, unshare_expr (next_fp)); gimplify_assign (unshare_expr (addr), tmp, pre_p); @@ -8139,7 +8139,7 @@ sh_function_value (const_tree valtype, && (TREE_CODE (valtype) == INTEGER_TYPE || TREE_CODE (valtype) == ENUMERAL_TYPE || TREE_CODE (valtype) == BOOLEAN_TYPE - || TREE_CODE (valtype) == REAL_TYPE + || SCALAR_FLOAT_TYPE_P (valtype) || TREE_CODE (valtype) == OFFSET_TYPE)) && sh_promote_prototypes (fn_decl_or_type) ? SImode : TYPE_MODE (valtype)), diff --git a/gcc/config/sol2.cc b/gcc/config/sol2.cc index 78b780a41c0..25f62beec13 100644 --- a/gcc/config/sol2.cc +++ b/gcc/config/sol2.cc @@ -46,7 +46,7 @@ solaris_insert_attributes (tree decl, tree *attributes) { tree *x, next; - if (solaris_pending_aligns != NULL && TREE_CODE (decl) == VAR_DECL) + if (solaris_pending_aligns != NULL && VAR_P (decl)) for (x = &solaris_pending_aligns; *x; x = &TREE_CHAIN (*x)) { tree name = TREE_PURPOSE (*x); diff --git a/gcc/config/sparc/sparc.cc b/gcc/config/sparc/sparc.cc index 8c0c9dce971..0aade05faf5 100644 --- a/gcc/config/sparc/sparc.cc +++ b/gcc/config/sparc/sparc.cc @@ -6904,7 +6904,7 @@ function_arg_slotno (const struct sparc_args *cum, machine_mode mode, their mode, depending upon whether VIS instructions are enabled. */ if (type && VECTOR_TYPE_P (type)) { - if (TREE_CODE (TREE_TYPE (type)) == REAL_TYPE) + if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (type))) { /* The SPARC port defines no floating-point vector modes. */ gcc_assert (mode == BLKmode); diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index c34f2f53b39..2d45437f5a2 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -551,9 +551,7 @@ along with GCC; see the file COPYING3. If not see the smaller of COMPUTED and `BIGGEST_ALIGNMENT' */ #define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \ (TARGET_FASTER_STRUCTS ? \ - ((TREE_CODE (STRUCT) == RECORD_TYPE \ - || TREE_CODE (STRUCT) == UNION_TYPE \ - || TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \ + (RECORD_OR_UNION_TYPE_P (STRUCT) \ && TYPE_FIELDS (STRUCT) != 0 \ ? MAX (MAX ((COMPUTED), (SPECIFIED)), BIGGEST_ALIGNMENT) \ : MAX ((COMPUTED), (SPECIFIED))) \ diff --git a/gcc/config/stormy16/stormy16.cc b/gcc/config/stormy16/stormy16.cc index 81b32dbc958..cd453c2a2f7 100644 --- a/gcc/config/stormy16/stormy16.cc +++ b/gcc/config/stormy16/stormy16.cc @@ -1756,7 +1756,7 @@ xstormy16_encode_section_info (tree decl, rtx r, int first) { default_encode_section_info (decl, r, first); - if (TREE_CODE (decl) == VAR_DECL + if (VAR_P (decl) && (lookup_attribute ("below100", DECL_ATTRIBUTES (decl)) || lookup_attribute ("BELOW100", DECL_ATTRIBUTES (decl)))) { @@ -2427,7 +2427,7 @@ xstormy16_handle_below100_attribute (tree *node, "%<__BELOW100__%> attribute only applies to variables"); *no_add_attrs = true; } - else if (args == NULL_TREE && TREE_CODE (*node) == VAR_DECL) + else if (args == NULL_TREE && VAR_P (*node)) { if (! (TREE_PUBLIC (*node) || TREE_STATIC (*node))) { diff --git a/gcc/config/v850/v850.cc b/gcc/config/v850/v850.cc index 367ba033d66..0fb72716b17 100644 --- a/gcc/config/v850/v850.cc +++ b/gcc/config/v850/v850.cc @@ -2161,7 +2161,7 @@ v850_encode_section_info (tree decl, rtx rtl, int first) { default_encode_section_info (decl, rtl, first); - if (TREE_CODE (decl) == VAR_DECL + if (VAR_P (decl) && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) v850_encode_data_area (decl, XEXP (rtl, 0)); } @@ -2482,7 +2482,7 @@ v850_insert_attributes (tree decl, tree * attr_ptr ATTRIBUTE_UNUSED ) if (data_area_stack && data_area_stack->data_area && current_function_decl == NULL_TREE - && (TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == CONST_DECL) + && (VAR_P (decl) || TREE_CODE (decl) == CONST_DECL) && v850_get_data_area (decl) == DATA_AREA_NORMAL) v850_set_data_area (decl, data_area_stack->data_area); @@ -2508,7 +2508,7 @@ v850_insert_attributes (tree decl, tree * attr_ptr ATTRIBUTE_UNUSED ) } if (current_function_decl == NULL_TREE - && (TREE_CODE (decl) == VAR_DECL + && (VAR_P (decl) || TREE_CODE (decl) == CONST_DECL || TREE_CODE (decl) == FUNCTION_DECL) && (!DECL_EXTERNAL (decl) || DECL_INITIAL (decl)) diff --git a/gcc/config/visium/visium.cc b/gcc/config/visium/visium.cc index ec4c2e9ae5c..48a61744db6 100644 --- a/gcc/config/visium/visium.cc +++ b/gcc/config/visium/visium.cc @@ -1313,7 +1313,7 @@ static bool visium_pass_by_reference (cumulative_args_t, const function_arg_info &arg) { tree type = arg.type; - return type && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == VECTOR_TYPE); + return type && (AGGREGATE_TYPE_P (type) || VECTOR_TYPE_P (type)); } /* Define how arguments are passed. @@ -1409,7 +1409,7 @@ visium_function_arg_advance (cumulative_args_t pcum_v, static bool visium_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED) { - return (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == VECTOR_TYPE); + return (AGGREGATE_TYPE_P (type) || VECTOR_TYPE_P (type)); } /* Define how scalar values are returned. */ diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc index 9e5d314e143..bb1444c44b6 100644 --- a/gcc/config/xtensa/xtensa.cc +++ b/gcc/config/xtensa/xtensa.cc @@ -4287,7 +4287,7 @@ xtensa_multibss_section_type_flags (tree decl, const char *name, int reloc) suffix = strrchr (name, '.'); if (suffix && strcmp (suffix, ".bss") == 0) { - if (!decl || (TREE_CODE (decl) == VAR_DECL + if (!decl || (VAR_P (decl) && DECL_INITIAL (decl) == NULL_TREE)) flags |= SECTION_BSS; /* @nobits */ else