arc.h (BITS_PER_UNIT): Removed.

2013-12-13  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* config/arc/arc.h (BITS_PER_UNIT): Removed.
	* config/bfin/bfin.h (BITS_PER_UNIT): Removed.
	* config/lm32/lm32.h (BITS_PER_UNIT): Removed.
	* config/m32c/m32c.h (BITS_PER_UNIT): Removed.
	* config/microblaze/microblaze.h (BITS_PER_UNIT): Removed.
	* config/picochip/picochip.h (BITS_PER_UNIT): Removed.
	* config/spu/spu.h (BITS_PER_UNIT): Removed.
	* defaults.h (BITS_PER_UNIT): Removed.
	* config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): New.
	* doc/rtl (BITS_PER_UNIT): Moved from tm.texi.
	(MAX_BITSIZE_MODE_ANY_INT): Updated.
	* doc/tm.texi (BITS_PER_UNIT): Removed.
	* doc/tm.texi.in (BITS_PER_UNIT): Removed.
	* genmodes.c (bits_per_unit, max_bitsize_mode_any_int): New.
	(create_modes): Added code to set bits_per_unit and
	max_bitsize_mode_any_int.
	(emit_max_int): Changed code generation.
	* mkconfig.sh: Added insn-modes.h.

From-SVN: r205964
This commit is contained in:
Kenneth Zadeck 2013-12-13 16:38:53 +00:00 committed by Kenneth Zadeck
parent 62c6e26e33
commit 8fd05f4d87
15 changed files with 78 additions and 40 deletions

View File

@ -1,3 +1,24 @@
2013-12-13 Kenneth Zadeck <zadeck@naturalbridge.com>
* config/arc/arc.h (BITS_PER_UNIT): Removed.
* config/bfin/bfin.h (BITS_PER_UNIT): Removed.
* config/lm32/lm32.h (BITS_PER_UNIT): Removed.
* config/m32c/m32c.h (BITS_PER_UNIT): Removed.
* config/microblaze/microblaze.h (BITS_PER_UNIT): Removed.
* config/picochip/picochip.h (BITS_PER_UNIT): Removed.
* config/spu/spu.h (BITS_PER_UNIT): Removed.
* defaults.h (BITS_PER_UNIT): Removed.
* config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): New.
* doc/rtl (BITS_PER_UNIT): Moved from tm.texi.
(MAX_BITSIZE_MODE_ANY_INT): Updated.
* doc/tm.texi (BITS_PER_UNIT): Removed.
* doc/tm.texi.in (BITS_PER_UNIT): Removed.
* genmodes.c (bits_per_unit, max_bitsize_mode_any_int): New.
(create_modes): Added code to set bits_per_unit and
max_bitsize_mode_any_int.
(emit_max_int): Changed code generation.
* mkconfig.sh: Added insn-modes.h.
2013-12-13 Jeff Law <law@redhat.com>
PR tree-optimization/45685

View File

@ -303,9 +303,6 @@ along with GCC; see the file COPYING3. If not see
numbered. */
#define WORDS_BIG_ENDIAN (TARGET_BIG_ENDIAN)
/* Number of bits in an addressable storage unit. */
#define BITS_PER_UNIT 8
/* Width in bits of a "word", which is the contents of a machine register.
Note that this is not necessarily the width of data type `int';
if using 16-bit ints on a 68000, this would still be 32.

View File

@ -859,9 +859,6 @@ typedef struct {
/* Define this if most significant word of a multiword number is numbered. */
#define WORDS_BIG_ENDIAN 0
/* number of bits in an addressable storage unit */
#define BITS_PER_UNIT 8
/* Width in bits of a "word", which is the contents of a machine register.
Note that this is not necessarily the width of data type `int';
if using 16-bit ints on a 68000, this would still be 32.

View File

@ -90,5 +90,10 @@ VECTOR_MODE (INT, QI, 2); /* V2QI */
INT_MODE (OI, 32);
INT_MODE (XI, 64);
/* Keep the OI and XI modes from confusing the compiler into thinking
that these modes could actually be used for computation. They are
only holders for vectors during data movement. */
#define MAX_BITSIZE_MODE_ANY_INT (128)
/* The symbol Pmode stands for one of the above machine modes (usually SImode).
The tm.h file specifies which one. It is not a distinct mode. */

View File

@ -73,7 +73,6 @@
#define BYTES_BIG_ENDIAN 1
#define WORDS_BIG_ENDIAN 1
#define BITS_PER_UNIT 8
#define BITS_PER_WORD 32
#define UNITS_PER_WORD 4

View File

@ -140,7 +140,6 @@ machine_function;
matches "int". Pointers are 16 bits for R8C/M16C (when TARGET_A16
is true) and 24 bits for M32CM/M32C (when TARGET_A24 is true), but
24-bit pointers are stored in 32-bit words. */
#define BITS_PER_UNIT 8
#define UNITS_PER_WORD 2
#define POINTER_SIZE (TARGET_A16 ? 16 : 32)
#define POINTERS_EXTEND_UNSIGNED 1

View File

@ -193,7 +193,6 @@ extern enum pipeline_type microblaze_pipe;
#define BITS_BIG_ENDIAN 0
#define BYTES_BIG_ENDIAN (TARGET_LITTLE_ENDIAN == 0)
#define WORDS_BIG_ENDIAN (BYTES_BIG_ENDIAN)
#define BITS_PER_UNIT 8
#define BITS_PER_WORD 32
#define UNITS_PER_WORD 4
#define MIN_UNITS_PER_WORD 4

View File

@ -92,8 +92,6 @@ extern enum picochip_dfa_type picochip_schedule_type;
#define BYTES_BIG_ENDIAN 0
#define WORDS_BIG_ENDIAN 0
#define BITS_PER_UNIT 8
#define BITS_PER_WORD 16
#define UNITS_PER_WORD (BITS_PER_WORD / BITS_PER_UNIT)

View File

@ -54,8 +54,6 @@ extern GTY(()) int spu_tune;
#define WORDS_BIG_ENDIAN 1
#define BITS_PER_UNIT 8
/* GCC uses word_mode in many places, assuming that it is the fastest
integer mode. That is not the case for SPU though. We can't use
32 here because (of some reason I can't remember.) */

View File

@ -471,10 +471,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
your target, you should override these values by defining the
appropriate symbols in your tm.h file. */
#ifndef BITS_PER_UNIT
#define BITS_PER_UNIT 8
#endif
#ifndef BITS_PER_WORD
#define BITS_PER_WORD (BITS_PER_UNIT * UNITS_PER_WORD)
#endif

View File

@ -1462,14 +1462,25 @@ Returns the number of units contained in a mode, i.e.,
Returns the narrowest mode in mode class @var{c}.
@end table
The following 4 variables are defined on every target. They can be
The following 3 variables are defined on every target. They can be
used to allocate buffers that are guaranteed to be large enough to
hold any value that can be represented on the target.
hold any value that can be represented on the target. The first two
can be overridden by defining them in the target's mode.def file,
however, the value must be a constant that can determined very early
in the compilation process. The third symbol cannot be overridden.
@table @code
@findex BITS_PER_UNIT
@item BITS_PER_UNIT
The number of bits in an addressable storage unit (byte). If you do
not define this, the default is 8.
@findex MAX_BITSIZE_MODE_ANY_INT
@item MAX_BITSIZE_MODE_ANY_INT
The maximum of MAX_BITSIZE_MODE_INT and MAX_BITSIZE_MODE_PARTIAL_INT.
The maximum bitsize of any mode that is used in integer math. This
should be overridden by the target if it uses large integers as
containers for larger vectors but otherwise never uses the contents to
compute integer values.
@findex MAX_BITSIZE_MODE_ANY_MODE
@item MAX_BITSIZE_MODE_ANY_MODE

View File

@ -879,11 +879,6 @@ You need not define this macro if the ordering is the same as for
multi-word integers.
@end defmac
@defmac BITS_PER_UNIT
Define this macro to be the number of bits in an addressable storage
unit (byte). If you do not define this macro the default is 8.
@end defmac
@defmac BITS_PER_WORD
Number of bits in a word. If you do not define this macro, the default
is @code{BITS_PER_UNIT * UNITS_PER_WORD}.

View File

@ -853,11 +853,6 @@ You need not define this macro if the ordering is the same as for
multi-word integers.
@end defmac
@defmac BITS_PER_UNIT
Define this macro to be the number of bits in an addressable storage
unit (byte). If you do not define this macro the default is 8.
@end defmac
@defmac BITS_PER_WORD
Number of bits in a word. If you do not define this macro, the default
is @code{BITS_PER_UNIT * UNITS_PER_WORD}.

View File

@ -711,10 +711,27 @@ make_vector_mode (enum mode_class bclass,
#define ADJUST_IBIT(M, X) _ADD_ADJUST (ibit, M, X, ACCUM, UACCUM)
#define ADJUST_FBIT(M, X) _ADD_ADJUST (fbit, M, X, FRACT, UACCUM)
static int bits_per_unit;
static int max_bitsize_mode_any_int;
static void
create_modes (void)
{
#include "machmode.def"
/* So put the default value unless the target needs a non standard
value. */
#ifdef BITS_PER_UNIT
bits_per_unit = BITS_PER_UNIT;
#else
bits_per_unit = 8;
#endif
#ifdef MAX_BITSIZE_MODE_ANY_INT
max_bitsize_mode_any_int = MAX_BITSIZE_MODE_ANY_INT;
#else
max_bitsize_mode_any_int = 0;
#endif
}
/* Processing. */
@ -860,16 +877,24 @@ emit_max_int (void)
int j;
puts ("");
for (max = 1, i = modes[MODE_INT]; i; i = i->next)
if (max < i->bytesize)
max = i->bytesize;
mmax = max;
for (max = 1, i = modes[MODE_PARTIAL_INT]; i; i = i->next)
if (max < i->bytesize)
max = i->bytesize;
if (max > mmax)
mmax = max;
printf ("#define MAX_BITSIZE_MODE_ANY_INT %d*BITS_PER_UNIT\n", mmax);
printf ("#define BITS_PER_UNIT (%d)\n", bits_per_unit);
if (max_bitsize_mode_any_int == 0)
{
for (max = 1, i = modes[MODE_INT]; i; i = i->next)
if (max < i->bytesize)
max = i->bytesize;
mmax = max;
for (max = 1, i = modes[MODE_PARTIAL_INT]; i; i = i->next)
if (max < i->bytesize)
max = i->bytesize;
if (max > mmax)
mmax = max;
printf ("#define MAX_BITSIZE_MODE_ANY_INT %d*BITS_PER_UNIT\n", mmax);
}
else
printf ("#define MAX_BITSIZE_MODE_ANY_INT %d\n", max_bitsize_mode_any_int);
mmax = 0;
for (j = 0; j < MAX_MODE_CLASS; j++)

View File

@ -97,6 +97,9 @@ case $output in
#if defined IN_GCC && !defined GENERATOR_FILE && !defined USED_FOR_TARGET
# include "insn-flags.h"
#endif
#if defined IN_GCC && !defined GENERATOR_FILE
# include "insn-modes.h"
#endif
EOF
;;
esac