regclass.c bugfix

Jeffrey A Law law@cygnus.com
Tue Jan 4 16:33:00 GMT 2000


  In message < 14450.26688.254958.703365@ongaonga.elec.canterbury.ac.nz >you writ
e:
  > Jeffrey A Law writes:
  >  >   	    /* Show that an insn inside a loop is likely to be executed
  >  three
  >  > ! 	       times more than insns outside a loop.  This is much more
  >  > ! 	       aggressive than the assumptions made elsewhere and is be
  > ing
  >  > ! 	       tried as an experiment. 
  > 
  > This comment about being an experiment has been in the sources for
  > aeons.  Is the experiment over?  I assume it was successful!  Can we
  > replace this comment with the results of observations found over the
  > years?
That'd be fine by me -- if someone knew what the observations actually were :-)

I believe it came in via this change:

Sat Jun 27 07:11:28 1992  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)

        * regclass.c: Major rework of regclass pass to do a better job of
        setting up register preferences and replace the "preferred or
        nothing" method with a class that should be used if the preferred
        class cannot be allocated.
        (MEMORY_MOVE_COST): Default value is 4, not 2.
        (move_cost, may_move_cost): New arrays.
        (init_reg_sets): Initialize them.
        (struct costs): Replaces struct savings.
        (costs): Replaces savings.
        (op_costs): New array.
        (altclass): Replaces preferred_or_nothing.
        (reg_alternate_class): New function; replaced reg_preferred_or_nothing.
        (regclass): Major rework.  Use new recording methods; make two
        passes if -fexpensive-optimizations; and refine REGNO_POINTER_FLAG
        and loop_depth setting.
        (record_reg_class): New function; replaces reg_class_record.
        (copy_cost): New function.
        (record_address_regs): Major changes.  New parameters and simplified
        and more efficient algorithm for chosing base vs. index regs.


jeff



More information about the Gcc-patches mailing list