Commit 2cc2d4bb by Richard Kenner Committed by Richard Kenner

attribs.c (handle_vector_size_attribute): Use host_integerp and tree_int_cst; remove warnings.

	* attribs.c (handle_vector_size_attribute): Use host_integerp
	and tree_int_cst; remove warnings.
	* caller-save.c (insert_restore): Add cast to get rid of warning.
	(insert_save): Likewise.
	* emit-rtl.c (adjust_address_1, offset_address): Likewise.
	* regmove.c (find_matches): Add temporary var to kill a warning.

From-SVN: r48452
parent 16b61764
Tue Jan 1 17:12:56 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* attribs.c (handle_vector_size_attribute): Use host_integerp
and tree_int_cst; remove warnings.
* caller-save.c (insert_restore): Add cast to get rid of warning.
(insert_save): Likewise.
* emit-rtl.c (adjust_address_1, offset_address): Likewise.
* regmove.c (find_matches): Add temporary var to kill a warning.
2002-01-01 Douglas B Rupp <rupp@gnat.com> 2002-01-01 Douglas B Rupp <rupp@gnat.com>
* config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX, * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
......
/* Functions dealing with attribute handling, used by most front ends. /* Functions dealing with attribute handling, used by most front ends.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
Free Software Foundation, Inc. 2002 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -1142,20 +1142,20 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs) ...@@ -1142,20 +1142,20 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs)
int flags ATTRIBUTE_UNUSED; int flags ATTRIBUTE_UNUSED;
bool *no_add_attrs; bool *no_add_attrs;
{ {
unsigned int vecsize, nunits; unsigned HOST_WIDE_INT vecsize, nunits;
enum machine_mode mode, orig_mode, new_mode; enum machine_mode mode, orig_mode, new_mode;
tree type = *node, new_type; tree type = *node, new_type;
*no_add_attrs = true; *no_add_attrs = true;
if (TREE_CODE (TREE_VALUE (args)) != INTEGER_CST) if (! host_integerp (TREE_VALUE (args), 1))
{ {
warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name)); warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name));
return NULL_TREE; return NULL_TREE;
} }
/* Get the vector size (in bytes). */ /* Get the vector size (in bytes). */
vecsize = TREE_INT_CST_LOW (TREE_VALUE (args)); vecsize = tree_low_cst (TREE_VALUE (args), 1);
/* We need to provide for vector pointers, vector arrays, and /* We need to provide for vector pointers, vector arrays, and
functions returning vectors. For example: functions returning vectors. For example:
...@@ -1173,9 +1173,10 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs) ...@@ -1173,9 +1173,10 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs)
/* Get the mode of the type being modified. */ /* Get the mode of the type being modified. */
orig_mode = TYPE_MODE (type); orig_mode = TYPE_MODE (type);
if (TREE_CODE (type) == RECORD_TYPE || if (TREE_CODE (type) == RECORD_TYPE
(GET_MODE_CLASS (orig_mode) != MODE_FLOAT || (GET_MODE_CLASS (orig_mode) != MODE_FLOAT
&& GET_MODE_CLASS (orig_mode) != MODE_INT)) && GET_MODE_CLASS (orig_mode) != MODE_INT)
|| ! host_integerp (TYPE_SIZE_UNIT (type), 1))
{ {
error ("invalid vector type for attribute `%s'", error ("invalid vector type for attribute `%s'",
IDENTIFIER_POINTER (name)); IDENTIFIER_POINTER (name));
...@@ -1183,7 +1184,7 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs) ...@@ -1183,7 +1184,7 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs)
} }
/* Calculate how many units fit in the vector. */ /* Calculate how many units fit in the vector. */
nunits = vecsize / TREE_INT_CST_LOW (TYPE_SIZE_UNIT (type)); nunits = vecsize / tree_low_cst (TYPE_SIZE_UNIT (type), 1);
/* Find a suitably sized vector. */ /* Find a suitably sized vector. */
new_mode = VOIDmode; new_mode = VOIDmode;
...@@ -1192,7 +1193,8 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs) ...@@ -1192,7 +1193,8 @@ handle_vector_size_attribute (node, name, args, flags, no_add_attrs)
: MODE_VECTOR_FLOAT); : MODE_VECTOR_FLOAT);
mode != VOIDmode; mode != VOIDmode;
mode = GET_MODE_WIDER_MODE (mode)) mode = GET_MODE_WIDER_MODE (mode))
if (vecsize == GET_MODE_SIZE (mode) && nunits == GET_MODE_NUNITS (mode)) if (vecsize == GET_MODE_SIZE (mode)
&& nunits == (unsigned HOST_WIDE_INT) GET_MODE_NUNITS (mode))
{ {
new_mode = mode; new_mode = mode;
break; break;
......
/* Save and restore call-clobbered registers which are live across a call. /* Save and restore call-clobbered registers which are live across a call.
Copyright (C) 1989, 1992, 1994, 1995, 1997, 1998, Copyright (C) 1989, 1992, 1994, 1995, 1997, 1998,
1999, 2000, 2001 Free Software Foundation, Inc. 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -675,7 +675,7 @@ insert_restore (chain, before_p, regno, maxrestore, save_mode) ...@@ -675,7 +675,7 @@ insert_restore (chain, before_p, regno, maxrestore, save_mode)
mem = regno_save_mem [regno][numregs]; mem = regno_save_mem [regno][numregs];
if (save_mode [regno] != VOIDmode if (save_mode [regno] != VOIDmode
&& save_mode [regno] != GET_MODE (mem) && save_mode [regno] != GET_MODE (mem)
&& numregs == HARD_REGNO_NREGS (regno, save_mode [regno])) && numregs == (unsigned int) HARD_REGNO_NREGS (regno, save_mode [regno]))
mem = adjust_address (mem, save_mode[regno], 0); mem = adjust_address (mem, save_mode[regno], 0);
pat = gen_rtx_SET (VOIDmode, pat = gen_rtx_SET (VOIDmode,
gen_rtx_REG (GET_MODE (mem), gen_rtx_REG (GET_MODE (mem),
...@@ -691,13 +691,12 @@ insert_restore (chain, before_p, regno, maxrestore, save_mode) ...@@ -691,13 +691,12 @@ insert_restore (chain, before_p, regno, maxrestore, save_mode)
n_regs_saved--; n_regs_saved--;
} }
/* Tell our callers how many extra registers we saved/restored */ /* Tell our callers how many extra registers we saved/restored */
return numregs - 1; return numregs - 1;
} }
/* Like insert_restore above, but save registers instead. */ /* Like insert_restore above, but save registers instead. */
static int static int
insert_save (chain, before_p, regno, to_save, save_mode) insert_save (chain, before_p, regno, to_save, save_mode)
struct insn_chain *chain; struct insn_chain *chain;
...@@ -752,7 +751,7 @@ insert_save (chain, before_p, regno, to_save, save_mode) ...@@ -752,7 +751,7 @@ insert_save (chain, before_p, regno, to_save, save_mode)
mem = regno_save_mem [regno][numregs]; mem = regno_save_mem [regno][numregs];
if (save_mode [regno] != VOIDmode if (save_mode [regno] != VOIDmode
&& save_mode [regno] != GET_MODE (mem) && save_mode [regno] != GET_MODE (mem)
&& numregs == HARD_REGNO_NREGS (regno, save_mode [regno])) && numregs == (unsigned int) HARD_REGNO_NREGS (regno, save_mode [regno]))
mem = adjust_address (mem, save_mode[regno], 0); mem = adjust_address (mem, save_mode[regno], 0);
pat = gen_rtx_SET (VOIDmode, mem, pat = gen_rtx_SET (VOIDmode, mem,
gen_rtx_REG (GET_MODE (mem), gen_rtx_REG (GET_MODE (mem),
......
/* Emit RTL for the GNU C-Compiler expander. /* Emit RTL for the GNU C-Compiler expander.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001 Free Software Foundation, Inc. 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -1996,7 +1996,8 @@ adjust_address_1 (memref, mode, offset, validate, adjust) ...@@ -1996,7 +1996,8 @@ adjust_address_1 (memref, mode, offset, validate, adjust)
lowest-order set bit in OFFSET, but don't change the alignment if OFFSET lowest-order set bit in OFFSET, but don't change the alignment if OFFSET
if zero. */ if zero. */
if (offset != 0) if (offset != 0)
memalign = MIN (memalign, (offset & -offset) * BITS_PER_UNIT); memalign = MIN (memalign,
(unsigned int) (offset & -offset) * BITS_PER_UNIT);
/* We can compute the size in a number of ways. */ /* We can compute the size in a number of ways. */
if (GET_MODE (new) != BLKmode) if (GET_MODE (new) != BLKmode)
...@@ -2045,10 +2046,11 @@ offset_address (memref, offset, pow2) ...@@ -2045,10 +2046,11 @@ offset_address (memref, offset, pow2)
/* Update the alignment to reflect the offset. Reset the offset, which /* Update the alignment to reflect the offset. Reset the offset, which
we don't know. */ we don't know. */
MEM_ATTRS (new) = get_mem_attrs (MEM_ALIAS_SET (memref), MEM_EXPR (memref), MEM_ATTRS (new)
0, 0, MIN (MEM_ALIGN (memref), = get_mem_attrs (MEM_ALIAS_SET (memref), MEM_EXPR (memref), 0, 0,
pow2 * BITS_PER_UNIT), MIN (MEM_ALIGN (memref),
GET_MODE (new)); (unsigned int) pow2 * BITS_PER_UNIT),
GET_MODE (new));
return new; return new;
} }
......
/* Move registers around to reduce number of move instructions needed. /* Move registers around to reduce number of move instructions needed.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001 Free Software Foundation, Inc. 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -1581,7 +1581,9 @@ find_matches (insn, matchp) ...@@ -1581,7 +1581,9 @@ find_matches (insn, matchp)
case '5': case '6': case '7': case '8': case '9': case '5': case '6': case '7': case '8': case '9':
{ {
char *end; char *end;
unsigned long match = strtoul (p - 1, &end, 10); unsigned long match_ul = strtoul (p - 1, &end, 10);
int match = match_ul;
p = end; p = end;
if (match < op_no && likely_spilled[match]) if (match < op_no && likely_spilled[match])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment