reload1.c (reload_reg_free_before_p): Hack.
authorJeffrey A Law <law@cygnus.com>
Mon, 19 Oct 1998 10:30:23 +0000 (10:30 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 19 Oct 1998 10:30:23 +0000 (04:30 -0600)
        * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
        is nonzero.  This is temporary!

From-SVN: r23174

gcc/ChangeLog
gcc/reload1.c

index d29853128cbb993b276aac559762de2f12d46605..0c34c6c7cb7468c23ee0a272e680ad328d30b54c 100644 (file)
@@ -11,6 +11,9 @@ Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
 
 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
 
+       * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
+       is nonzero.  This is temporary!
+
        * sched.c (update_flow_info): Handle death notes made invalid by
        instruction splitting.  Partially reverts Oct 15, 1998 patch.
        * haifa-sched.c (update_flow_info): Likewise.
index 274290af7fc4fcde5b955b985f1c07eb5b2460ce..74d5ed4f42025bd75c3734800b5494e6dcc19d7f 100644 (file)
@@ -5044,6 +5044,19 @@ reload_reg_free_before_p (regno, opnum, type, equiv)
 {
   int i;
 
+  /* The code to handle EQUIV below is wrong.
+
+     If we wnat to know if a value in a particular reload register is available
+     at a particular point in time during reloading, we must check *all*
+     prior reloads to see if they clobber the value.
+
+     Note this is significantly different from determining when a register is
+     free for usage in a reload!
+
+     This change is temporary.  It will go away.  */
+  if (equiv)
+    return 0;
+
   switch (type)
     {
     case RELOAD_FOR_OTHER_ADDRESS: