OSDN Git Service

* ada/acats/run_all.sh: Log start and end times.
[pf3gnuchains/gcc-fork.git] / gcc / ira-int.h
index 5b8c1ef..e56e051 100644 (file)
@@ -482,7 +482,7 @@ struct ira_allocno
 #define ALLOCNO_MAX(A) ((A)->max)
 #define ALLOCNO_CONFLICT_ID(A) ((A)->conflict_id)
 
-/* Map regno -> allocnos with given regno (see comments for 
+/* Map regno -> allocnos with given regno (see comments for
    allocno member `next_regno_allocno').  */
 extern ira_allocno_t *ira_regno_allocno_map;
 
@@ -542,7 +542,7 @@ extern int ira_copies_num;
 struct ira_spilled_reg_stack_slot
 {
   /* pseudo-registers assigned to the stack slot.  */
-  regset_head spilled_regs;
+  bitmap_head spilled_regs;
   /* RTL representation of the stack slot.  */
   rtx mem;
   /* Size of the stack slot.  */
@@ -565,18 +565,7 @@ extern int ira_reg_cost, ira_mem_cost;
 extern int ira_load_cost, ira_store_cost, ira_shuffle_cost;
 extern int ira_move_loops_num, ira_additional_jumps_num;
 
-/* Map: hard register number -> cover class it belongs to.  If the
-   corresponding class is NO_REGS, the hard register is not available
-   for allocation.  */
-extern enum reg_class ira_hard_regno_cover_class[FIRST_PSEUDO_REGISTER];
-
-/* Map: register class x machine mode -> number of hard registers of
-   given class needed to store value of given mode.  If the number for
-   some hard-registers of the register class is different, the size
-   will be negative.  */
-extern int ira_reg_class_nregs[N_REG_CLASSES][MAX_MACHINE_MODE];
-
-/* Maximal value of the previous array elements.  */
+/* Maximal value of element of array ira_reg_class_nregs.  */
 extern int ira_max_nregs;
 
 /* The number of bits in each element of array used to implement a bit
@@ -601,7 +590,7 @@ extern int ira_max_nregs;
        }                                                               \
      ((R)[(unsigned) (_i - _min) / IRA_INT_BITS]                       \
       |= ((IRA_INT_TYPE) 1 << ((unsigned) (_i - _min) % IRA_INT_BITS))); }))
-  
+
 
 #define CLEAR_ALLOCNO_SET_BIT(R, I, MIN, MAX) __extension__            \
   (({ int _min = (MIN), _max = (MAX), _i = (I);                                \
@@ -691,18 +680,18 @@ ira_allocno_set_iter_cond (ira_allocno_set_iterator *i, int *n)
     {
       i->word_num++;
       i->bit_num = i->word_num * IRA_INT_BITS;
-      
+
       /* If we have reached the end, break.  */
       if (i->bit_num >= i->nel)
        return false;
     }
-  
+
   /* Skip bits that are zero.  */
   for (; (i->word & 1) == 0; i->word >>= 1)
     i->bit_num++;
-  
+
   *n = (int) i->bit_num + i->start_val;
-  
+
   return true;
 }
 
@@ -730,10 +719,9 @@ ira_allocno_set_iter_next (ira_allocno_set_iterator *i)
 extern HARD_REG_SET ira_reg_mode_hard_regset
                     [FIRST_PSEUDO_REGISTER][NUM_MACHINE_MODES];
 
-/* Arrays analogous to macros MEMORY_MOVE_COST and REGISTER_MOVE_COST.
-   Don't use ira_register_move_cost directly.  Use function of
+/* Array analogous to macro REGISTER_MOVE_COST.  Don't use
+   ira_register_move_cost directly.  Use function of
    ira_get_may_move_cost instead.  */
-extern short ira_memory_move_cost[MAX_MACHINE_MODE][N_REG_CLASSES][2];
 extern move_table *ira_register_move_cost[MAX_MACHINE_MODE];
 
 /* Similar to may_move_in_cost but it is calculated in IRA instead of
@@ -755,14 +743,10 @@ extern move_table *ira_may_move_out_cost[MAX_MACHINE_MODE];
    allocation.  */
 extern int ira_class_subset_p[N_REG_CLASSES][N_REG_CLASSES];
 
-/* Array of number of hard registers of given class which are
-   available for the allocation.  The order is defined by the
-   allocation order.  */
-extern short ira_class_hard_regs[N_REG_CLASSES][FIRST_PSEUDO_REGISTER];
-
-/* The number of elements of the above array for given register
-   class.  */
-extern int ira_class_hard_regs_num[N_REG_CLASSES];
+/* Array of the number of hard registers of given class which are
+   available for allocation.  The order is defined by the the hard
+   register numbers.  */
+extern short ira_non_ordered_class_hard_regs[N_REG_CLASSES][FIRST_PSEUDO_REGISTER];
 
 /* Index (in ira_class_hard_regs) for given register class and hard
    register (in general case a hard register can belong to several
@@ -770,14 +754,6 @@ extern int ira_class_hard_regs_num[N_REG_CLASSES];
    unavailable for the allocation. */
 extern short ira_class_hard_reg_index[N_REG_CLASSES][FIRST_PSEUDO_REGISTER];
 
-/* Function specific hard registers can not be used for the register
-   allocation.  */
-extern HARD_REG_SET ira_no_alloc_regs;
-
-/* Number of given class hard registers available for the register
-   allocation for given classes.  */
-extern int ira_available_class_regs[N_REG_CLASSES];
-
 /* Array whose values are hard regset of hard registers available for
    the allocation of given register class whose HARD_REGNO_MODE_OK
    values for given mode are zero.  */
@@ -789,16 +765,6 @@ extern HARD_REG_SET prohibited_class_mode_regs
    prohibited.  */
 extern HARD_REG_SET ira_prohibited_mode_move_regs[NUM_MACHINE_MODES];
 
-/* Number of cover classes.  Cover classes is non-intersected register
-   classes containing all hard-registers available for the
-   allocation.  */
-extern int ira_reg_class_cover_size;
-
-/* The array containing cover classes (see also comments for macro
-   IRA_COVER_CLASSES).  Only first IRA_REG_CLASS_COVER_SIZE elements are
-   used for this.  */
-extern enum reg_class ira_reg_class_cover[N_REG_CLASSES];
-
 /* The value is number of elements in the subsequent array.  */
 extern int ira_important_classes_num;
 
@@ -812,11 +778,6 @@ extern enum reg_class ira_important_classes[N_REG_CLASSES];
    classes.  */
 extern int ira_important_class_nums[N_REG_CLASSES];
 
-/* Map of all register classes to corresponding cover class containing
-   the given class.  If given class is not a subset of a cover class,
-   we translate it into the cheapest cover class.  */
-extern enum reg_class ira_class_translate[N_REG_CLASSES];
-
 /* The biggest important class inside of intersection of the two
    classes (that is calculated taking only hard registers available
    for allocation into account).  If the both classes contain no hard
@@ -1130,20 +1091,20 @@ ira_allocno_conflict_iter_cond (ira_allocno_conflict_iterator *i,
       for (; i->word == 0; i->word = ((IRA_INT_TYPE *) i->vec)[i->word_num])
        {
          i->word_num++;
-         
+
          /* If we have reached the end, break.  */
          if (i->word_num * sizeof (IRA_INT_TYPE) >= i->size)
            return false;
-         
+
          i->bit_num = i->word_num * IRA_INT_BITS;
        }
-      
+
       /* Skip bits that are zero.  */
       for (; (i->word & 1) == 0; i->word >>= 1)
        i->bit_num++;
-      
+
       *a = ira_conflict_id_allocno_map[i->bit_num + i->base_conflict_id];
-      
+
       return true;
     }
 }