OSDN Git Service

2003-02-11 Dale Johannesen <dalej@apple.com>
authordalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Feb 2003 20:58:36 +0000 (20:58 +0000)
committerdalej <dalej@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Feb 2003 20:58:36 +0000 (20:58 +0000)
        * ra-build.c (compare_and_free_webs):  Relax checking.
        * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
        (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.

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

gcc/ChangeLog
gcc/config/rs6000/darwin.h
gcc/ra-build.c

index 4cbfcb6..e87383a 100644 (file)
@@ -1,3 +1,8 @@
+2003-02-11  Dale Johannesen  <dalej@apple.com>
+       * ra-build.c (compare_and_free_webs):  Relax checking.
+       * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
+       (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
+
 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
 
        PR optimization/9651
index b3468f2..9fceb6a 100644 (file)
@@ -87,6 +87,11 @@ Boston, MA 02111-1307, USA.  */
   (RS6000_ALIGN (current_function_outgoing_args_size, 16)              \
    + (STACK_POINTER_OFFSET))
 
+/* These are used by -fbranch-probabilities */
+#define HOT_TEXT_SECTION_NAME "__TEXT,__text,regular,pure_instructions"
+#define UNLIKELY_EXECUTED_TEXT_SECTION_NAME \
+                              "__TEXT,__text2,regular,pure_instructions"
+
 /* Define cutoff for using external functions to save floating point.
    Currently on Darwin, always use inline stores.  */
 
index 91bc014..4448065 100644 (file)
@@ -1719,17 +1719,21 @@ compare_and_free_webs (link)
       struct web *web1 = wl->web;
       struct web *web2 = ID2WEB (web1->id);
       if (web1->regno != web2->regno
-         || web1->crosses_call != web2->crosses_call
-         || web1->live_over_abnormal != web2->live_over_abnormal
          || web1->mode_changed != web2->mode_changed
          || !rtx_equal_p (web1->orig_x, web2->orig_x)
          || web1->type != web2->type
          /* Only compare num_defs/num_uses with non-hardreg webs.
             E.g. the number of uses of the framepointer changes due to
             inserting spill code.  */
-         || (web1->type != PRECOLORED &&
-             (web1->num_uses != web2->num_uses
-              || web1->num_defs != web2->num_defs)))
+         || (web1->type != PRECOLORED
+             && (web1->num_uses != web2->num_uses
+                 || web1->num_defs != web2->num_defs))
+         /* Similarly, if the framepointer was unreferenced originally
+            but we added spills, these fields may not match. */
+         || (web1->type != PRECOLORED
+               && web1->crosses_call != web2->crosses_call)
+         || (web1->type != PRECOLORED
+              && web1->live_over_abnormal != web2->live_over_abnormal))
        abort ();
       if (web1->type != PRECOLORED)
        {