From patchwork Wed Apr 11 20:39:19 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleg Endo X-Patchwork-Id: 151878 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 47EC0B707C for ; Thu, 12 Apr 2012 06:39:45 +1000 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1334781586; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Subject:From:To:Content-Type:Date:Message-ID:Mime-Version: Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:Sender:Delivered-To; bh=YlVT7eXfLDO3IptQI3CH 4rGFShY=; b=DENK1e0dcopoVjkLFS8bEXD6sBvWz/HqiJWzRTAIM++7gHudBzMU Q4fSk66NdDOA4vA5vTZxs2o211Vk/3W92r7J+8wfwJ1MFYFSEuw8WvV8FGSXO92I LTda5cOTxGR5brq01+VFxdA+LkseAcPhnctfBSQ6o/TdDh9knmXGRy4= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Subject:From:To:Content-Type:Date:Message-ID:Mime-Version:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=oDqXPpXQEVS/s6T9QIbtt4PZCI+Ad1hfBpWLp2GMuviTI1X0KiabHNakTgGTMl pOf/yTYr3cVRIx54bRt+O1MrngLaDiTJgRRhR+BhhD3z7Xfna7e52r3TGZa3s4/Y z4BEDv/uPeuvF4G69Nt/05LkYnDRxir3YxPFF9TtCkR6M=; Received: (qmail 614 invoked by alias); 11 Apr 2012 20:39:42 -0000 Received: (qmail 604 invoked by uid 22791); 11 Apr 2012 20:39:41 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL, BAYES_00, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, RCVD_IN_HOSTKARMA_NO, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY X-Spam-Check-By: sourceware.org Received: from mailout01.t-online.de (HELO mailout01.t-online.de) (194.25.134.80) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 11 Apr 2012 20:39:27 +0000 Received: from fwd05.aul.t-online.de (fwd05.aul.t-online.de ) by mailout01.t-online.de with smtp id 1SI4K4-0001UK-Gl; Wed, 11 Apr 2012 22:39:24 +0200 Received: from [192.168.0.104] (T5j7cYZTrhcKNROxA1dYr-MTIdud26n0s7SyPY17MjHklq6M+Mih8Orz5v2WQEXg40@[93.218.180.175]) by fwd05.t-online.de with esmtp id 1SI4K2-2FgIHw0; Wed, 11 Apr 2012 22:39:22 +0200 Subject: [SH] Use more bool, NULL_RTX From: Oleg Endo To: gcc-patches Date: Wed, 11 Apr 2012 22:39:19 +0200 Message-ID: <1334176759.19154.175.camel@yam-132-YW-E178-FTW> Mime-Version: 1.0 X-IsSubscribed: yes 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 Hello, The attached patch make the code use some more 'bool' and 'NULL_RTX'. Tested with 'make all-gcc'. OK? ChangeLog: * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0. * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE): Fix line width. (dump_table): Use bool type for need_align and have_df variables. (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0. (regs_used): Remove register modifier. (barrier_align): Move variables slot, credit, jump_to_next into if block above for loop. Use bool type for jump_to_next. (sh_function_arg): Use NULL_RTX instead of 0. Index: gcc/config/sh/sh.c =================================================================== --- gcc/config/sh/sh.c (revision 186327) +++ gcc/config/sh/sh.c (working copy) @@ -547,10 +547,12 @@ #define TARGET_FRAME_POINTER_REQUIRED sh_frame_pointer_required /* Return regmode weight for insn. */ -#define INSN_REGMODE_WEIGHT(INSN, MODE) regmode_weight[((MODE) == SImode) ? 0 : 1][INSN_UID (INSN)] +#define INSN_REGMODE_WEIGHT(INSN, MODE)\ + regmode_weight[((MODE) == SImode) ? 0 : 1][INSN_UID (INSN)] /* Return current register pressure for regmode. */ -#define CURR_REGMODE_PRESSURE(MODE) curr_regmode_pressure[((MODE) == SImode) ? 0 : 1] +#define CURR_REGMODE_PRESSURE(MODE)\ + curr_regmode_pressure[((MODE) == SImode) ? 0 : 1] #undef TARGET_ENCODE_SECTION_INFO #define TARGET_ENCODE_SECTION_INFO sh_encode_section_info @@ -4202,10 +4204,10 @@ { rtx scan = barrier; int i; - int need_align = 1; + bool need_align = true; rtx lab; label_ref_list_t ref; - int have_df = 0; + bool have_df = false; /* Do two passes, first time dump out the HI sized constants. */ @@ -4218,7 +4220,7 @@ if (need_align) { scan = emit_insn_after (gen_align_2 (), scan); - need_align = 0; + need_align = false; } for (lab = p->label; lab; lab = LABEL_REFS (lab)) scan = emit_label_after (lab, scan); @@ -4231,15 +4233,15 @@ } } else if (p->mode == DFmode) - have_df = 1; + have_df = true; } - need_align = 1; + need_align = true; if (start) { scan = emit_insn_after (gen_align_4 (), scan); - need_align = 0; + need_align = false; for (; start != barrier; start = NEXT_INSN (start)) if (NONJUMP_INSN_P (start) && recog_memoized (start) == CODE_FOR_casesi_worker_2) @@ -4256,7 +4258,7 @@ scan = emit_label_after (gen_label_rtx (), scan); scan = emit_insn_after (gen_align_log (GEN_INT (3)), scan); - need_align = 0; + need_align = false; for (i = 0; i < pool_size; i++) { @@ -4298,7 +4300,7 @@ { scan = emit_insn_after (gen_align_log (GEN_INT (3)), scan); align_insn = scan; - need_align = 0; + need_align = false; } case DImode: for (lab = p->label; lab; lab = LABEL_REFS (lab)) @@ -4336,7 +4338,7 @@ case SFmode: if (need_align) { - need_align = 0; + need_align = false; scan = emit_label_after (gen_label_rtx (), scan); scan = emit_insn_after (gen_align_4 (), scan); } @@ -4349,7 +4351,7 @@ case DImode: if (need_align) { - need_align = 0; + need_align = false; scan = emit_label_after (gen_label_rtx (), scan); scan = emit_insn_after (gen_align_4 (), scan); } @@ -4548,7 +4550,9 @@ int hi_align = 2; int si_align = 2; int leading_mova = num_mova; - rtx barrier_before_mova = 0, found_barrier = 0, good_barrier = 0; + rtx barrier_before_mova = NULL_RTX; + rtx found_barrier = NULL_RTX; + rtx good_barrier = NULL_RTX; int si_limit; int hi_limit; rtx orig = from; @@ -4882,19 +4886,19 @@ rtx pattern, part, reg_part, reg; if (!NONJUMP_INSN_P (insn)) - return 0; + return NULL_RTX; pattern = PATTERN (insn); if (GET_CODE (pattern) != PARALLEL || get_attr_type (insn) != TYPE_SFUNC) - return 0; + return NULL_RTX; - for (reg_part = 0, i = XVECLEN (pattern, 0) - 1; i >= 1; i--) + for (reg_part = NULL_RTX, i = XVECLEN (pattern, 0) - 1; i >= 1; i--) { part = XVECEXP (pattern, 0, i); if (GET_CODE (part) == USE && GET_MODE (XEXP (part, 0)) == SImode) reg_part = part; } if (! reg_part) - return 0; + return NULL_RTX; reg = XEXP (reg_part, 0); for (i = XVECLEN (pattern, 0) - 1; i >= 0; i--) { @@ -4904,7 +4908,7 @@ if (reg_mentioned_p (reg, ((GET_CODE (part) == SET && REG_P (SET_DEST (part))) ? SET_SRC (part) : part))) - return 0; + return NULL_RTX; } return reg; } @@ -5054,7 +5058,7 @@ { if (fmt[i] == 'E') { - register int j; + int j; for (j = XVECLEN (x, i) - 1; j >= 0; j--) used |= regs_used (XVECEXP (x, i, j), is_dest); } @@ -5339,7 +5343,6 @@ barrier_align (rtx barrier_or_label) { rtx next = next_real_insn (barrier_or_label), pat, prev; - int slot, credit, jump_to_next = 0; if (! next) return 0; @@ -5391,13 +5394,17 @@ /* PREV is presumed to be the JUMP_INSN for the barrier under investigation. Skip to the insn before it. */ + + int slot, credit; + bool jump_to_next = false; + prev = prev_real_insn (prev); for (slot = 2, credit = (1 << (CACHE_LOG - 2)) + 2; credit >= 0 && prev && NONJUMP_INSN_P (prev); prev = prev_real_insn (prev)) { - jump_to_next = 0; + jump_to_next = false; if (GET_CODE (PATTERN (prev)) == USE || GET_CODE (PATTERN (prev)) == CLOBBER) continue; @@ -5407,7 +5414,7 @@ if (INSN_UID (prev) == INSN_UID (next)) { /* Delay slot was filled with insn at jump target. */ - jump_to_next = 1; + jump_to_next = true; continue; } } @@ -8438,7 +8445,7 @@ regno = (BASE_ARG_REG (mode) + ROUND_REG (*ca, mode)) ^ (mode == SFmode && TARGET_SH4 - && TARGET_LITTLE_ENDIAN != 0 + && TARGET_LITTLE_ENDIAN && ! TARGET_HITACHI && ! ca->renesas_abi); return gen_rtx_REG (mode, regno); @@ -8476,10 +8483,10 @@ + ca->arg_count[(int) SH_ARG_INT])); } - return 0; + return NULL_RTX; } - return 0; + return NULL_RTX; } /* Update the data in CUM to advance over an argument @@ -8640,7 +8647,7 @@ sh_struct_value_rtx (tree fndecl, int incoming ATTRIBUTE_UNUSED) { if (TARGET_HITACHI || sh_attr_renesas_p (fndecl)) - return 0; + return NULL_RTX; return gen_rtx_REG (Pmode, 2); } @@ -9195,7 +9202,7 @@ { if (TARGET_HITACHI) return true; - if (td == 0) + if (td == NULL_TREE) return false; if (DECL_P (td)) td = TREE_TYPE (td); @@ -9423,7 +9430,7 @@ else return false; } - if (set == 0 + if (set == NULL_RTX && reg_overlap_mentioned_p (reg, PATTERN (this_insn))) return false; } @@ -9618,7 +9625,7 @@ rtx body = PATTERN (insn); const char *templ; char c; - int maybe_label = 1; + bool maybe_label = true; if (GET_CODE (body) == ASM_INPUT) templ = XSTR (body, 0); @@ -9654,7 +9661,7 @@ break; } else if (c == '\'' || c == '"') - maybe_label = 0; + maybe_label = false; c = *templ++; } sum += ppi_adjust; @@ -9820,7 +9827,7 @@ if (GET_CODE (orig) == LABEL_REF || (GET_CODE (orig) == SYMBOL_REF && SYMBOL_REF_LOCAL_P (orig))) { - if (reg == 0) + if (reg == NULL_RTX) reg = gen_reg_rtx (Pmode); emit_insn (gen_symGOTOFF2reg (reg, orig)); @@ -9828,7 +9835,7 @@ } else if (GET_CODE (orig) == SYMBOL_REF) { - if (reg == 0) + if (reg == NULL_RTX) reg = gen_reg_rtx (Pmode); emit_insn (gen_symGOT2reg (reg, orig)); @@ -10069,7 +10076,7 @@ { rtx insn, lab, pattern; - if (x == NULL) + if (x == NULL_RTX) return x; switch (GET_CODE (x)) @@ -11347,12 +11354,12 @@ enum machine_mode tmode = VOIDmode; int nop = 0, i; rtx op[4]; - rtx pat = 0; + rtx pat = NULL_RTX; if (signature_args[signature][0]) { if (ignore) - return 0; + return NULL_RTX; tmode = insn_data[icode].operand[0].mode; if (! target @@ -11411,7 +11418,7 @@ gcc_unreachable (); } if (! pat) - return 0; + return NULL_RTX; emit_insn (pat); return target; } @@ -12189,7 +12196,7 @@ /* The following prevents loops occurrence when we change MEM in CONST_DOUBLE onto the same CONST_DOUBLE. */ - if (x != 0 && GET_CODE (x) == CONST_DOUBLE) + if (x != NULL_RTX && GET_CODE (x) == CONST_DOUBLE) return x; for (i = n_replacements - 1; i >= 0 ; i--) @@ -12197,8 +12204,8 @@ return replacements[i*2+1]; /* Allow this function to make replacements in EXPR_LISTs. */ - if (x == 0) - return 0; + if (x == NULL_RTX) + return NULL_RTX; if (GET_CODE (x) == SUBREG) { Index: gcc/config/sh/sh.h =================================================================== --- gcc/config/sh/sh.h (revision 186328) +++ gcc/config/sh/sh.h (working copy) @@ -1651,7 +1651,7 @@ can ignore COUNT. */ #define RETURN_ADDR_RTX(COUNT, FRAME) \ - (((COUNT) == 0) ? sh_get_pr_initial_val () : (rtx) 0) + (((COUNT) == 0) ? sh_get_pr_initial_val () : NULL_RTX) /* A C expression whose value is RTL representing the location of the incoming return address at the beginning of any function, before the