2003-04-09 Dan Nicolaescu <dann@ics.uci.edu>
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Apr 2003 05:24:26 +0000 (05:24 +0000)
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Apr 2003 05:24:26 +0000 (05:24 +0000)
    Zack Weinberg  <zack@codesourcery.com>

* regrename.c (struct du_chain): Use a bitfield for reg_class.
* cse.c (struct qty_table_elem, struct table_elt, struct set):
Use bitfields for fields holding enum rtx_code or
enum machine_mode values.  Add comments explaining size choices.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65419 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cse.c
gcc/regrename.c

index dcf7e58..8110f48 100644 (file)
@@ -1,3 +1,11 @@
+2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
+           Zack Weinberg  <zack@codesourcery.com>
+
+       * regrename.c (struct du_chain): Use a bitfield for reg_class.
+       * cse.c (struct qty_table_elem, struct table_elt, struct set):
+       Use bitfields for fields holding enum rtx_code or
+       enum machine_mode values.  Add comments explaining size choices.
+
 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/fp-bit.c (unpack_d): Handle pair of doubles with
 
 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
 
-        * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
-        regardless of architecture.
-        (spe_init_builtins): Change V2SI and V2SF types to opaque types.
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
+       regardless of architecture.
+       (spe_init_builtins): Change V2SI and V2SF types to opaque types.
 
 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
 
@@ -137,11 +145,11 @@ Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
        * doc/sourcebuild.texi: Likewise.
 
 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
-            Richard Henderson  <rth@redhat.com>
+           Richard Henderson  <rth@redhat.com>
 
-        PR c/9516
-        * expr.c (safe_from_p): Rearrange to avoid deep recursion in
-        favour of looping and tail recursion for TREE_LIST and binops.
+       PR c/9516
+       * expr.c (safe_from_p): Rearrange to avoid deep recursion in
+       favour of looping and tail recursion for TREE_LIST and binops.
 
 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
 
@@ -156,9 +164,9 @@ Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
 
 2003-04-07  Richard Henderson  <rth@redhat.com>
 
-        PR opt/8634
-        * function.c (purge_addressof_1): Don't try arithmetics for
-        unchanging memories.
+       PR opt/8634
+       * function.c (purge_addressof_1): Don't try arithmetics for
+       unchanging memories.
 
 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
 
@@ -177,13 +185,13 @@ Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
 
 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
 
-        * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
-        V2SI_type_node to opaque_V2SI_type_node.  Rename all
-        V2SF_type_node to opaque_V2SF_type_node.
-        (rs6000_init_builtins): Define opaque_V2SI_type_node and
-        opaque_V2SF_type_node.
-        (is_ev64_opaque_type): The types opaque_V2SI_type_node and
-        opaque_V2SF_type_node are opaque types.
+       * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
+       V2SI_type_node to opaque_V2SI_type_node.  Rename all
+       V2SF_type_node to opaque_V2SF_type_node.
+       (rs6000_init_builtins): Define opaque_V2SI_type_node and
+       opaque_V2SF_type_node.
+       (is_ev64_opaque_type): The types opaque_V2SI_type_node and
+       opaque_V2SF_type_node are opaque types.
 
 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
 
@@ -238,27 +246,27 @@ Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
 
 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
 
-        * doc/invoke.texi (RS/6000 and PowerPC Options): Document
-        -mfloat-gprs.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document
+       -mfloat-gprs.
 
-        * config/rs6000/rs6000.c: Delete rs6000_fprs.
-        Declare rs6000_float_gprs.
-        Declare rs6000_float_gprs_string.
-        (rs6000_parse_float_gprs_option): New.
-        (rs6000_override_options): Genericize rs6000_parse_* calls to use
-        rs6000_parse_yes_no_option.
-        Change check for cpu=8540, to use TARGET_E500.
-        (rs6000_parse_isel_option): Delete.
-        (rs6000_parse_spe_option): Delete.
-        (rs6000_parse_vrsave_option): Delete.
+       * config/rs6000/rs6000.c: Delete rs6000_fprs.
+       Declare rs6000_float_gprs.
+       Declare rs6000_float_gprs_string.
+       (rs6000_parse_float_gprs_option): New.
+       (rs6000_override_options): Genericize rs6000_parse_* calls to use
+       rs6000_parse_yes_no_option.
+       Change check for cpu=8540, to use TARGET_E500.
+       (rs6000_parse_isel_option): Delete.
+       (rs6000_parse_spe_option): Delete.
+       (rs6000_parse_vrsave_option): Delete.
 
-        * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
-        Define rs6000_float_gprs_string.
-        (TARGET_OPTIONS): Add rs6000_float_gprs option.
+       * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
+       Define rs6000_float_gprs_string.
+       (TARGET_OPTIONS): Add rs6000_float_gprs option.
 
-        * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
+       * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
 
-        * config/rs6000/eabispe.h: Set rs6000_float_gprs.
+       * config/rs6000/eabispe.h: Set rs6000_float_gprs.
 
 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
 
index 4109b58..a90f0d8 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -251,8 +251,10 @@ struct qty_table_elem
   rtx comparison_const;
   int comparison_qty;
   unsigned int first_reg, last_reg;
-  enum machine_mode mode;
-  enum rtx_code comparison_code;
+  /* The sizes of these fields should match the sizes of the
+     code and mode fields of struct rtx_def (see rtl.h).  */
+  ENUM_BITFIELD(rtx_code) comparison_code : 16;
+  ENUM_BITFIELD(machine_mode) mode : 8;
 };
 
 /* The table of all qtys, indexed by qty number.  */
@@ -462,7 +464,9 @@ struct table_elt
   struct table_elt *related_value;
   int cost;
   int regcost;
-  enum machine_mode mode;
+  /* The size of this field should match the size
+     of the mode field of struct rtx_def (see rtl.h).  */
+  ENUM_BITFIELD(machine_mode) mode : 8;
   char in_memory;
   char is_const;
   char flag;
@@ -4712,8 +4716,10 @@ struct set
   /* Nonzero if the SET_SRC contains something
      whose value cannot be predicted and understood.  */
   char src_volatile;
-  /* Original machine mode, in case it becomes a CONST_INT.  */
-  enum machine_mode mode;
+  /* Original machine mode, in case it becomes a CONST_INT.
+     The size of this field should match the size of the mode
+     field of struct rtx_def (see rtl.h).  */
+  ENUM_BITFIELD(machine_mode) mode : 8;
   /* A constant equivalent for SET_SRC, if any.  */
   rtx src_const;
   /* Original SET_SRC value used for libcall notes.  */
index 027e2f4..9357409 100644 (file)
@@ -51,7 +51,7 @@ struct du_chain
 
   rtx insn;
   rtx *loc;
-  enum reg_class class;
+  ENUM_BITFIELD(reg_class) class : 16;
   unsigned int need_caller_save_reg:1;
   unsigned int earlyclobber:1;
 };