OSDN Git Service

*** empty log message ***
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Apr 1992 16:55:54 +0000 (16:55 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Apr 1992 16:55:54 +0000 (16:55 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@841 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/flow.c
gcc/print-tree.c
gcc/unroll.c

index 1ee55c1..b5a07fa 100644 (file)
@@ -519,7 +519,8 @@ find_basic_blocks (f, nonlocal_label_list)
        if (GET_CODE (insn) == JUMP_INSN
            && GET_CODE (PATTERN (insn)) == SET
            && SET_DEST (PATTERN (insn)) == pc_rtx
-           && GET_CODE (SET_SRC (PATTERN (insn))) == REG)
+           && (GET_CODE (SET_SRC (PATTERN (insn))) == REG
+               || GET_CODE (SET_SRC (PATTERN (insn))) == MEM))
          {
            rtx x;
            for (x = label_value_list; x; x = XEXP (x, 1))
index 9001373..74a6026 100644 (file)
@@ -467,6 +467,7 @@ print_node (file, prefix, node, indent)
        case BIND_EXPR:
          print_node (file, "vars", TREE_OPERAND (node, 0), indent + 4);
          print_node (file, "body", TREE_OPERAND (node, 1), indent + 4);
+         print_node (file, "block", TREE_OPERAND (node, 2), indent + 4);
          return;
        }
 
index 92886fe..f4719e3 100644 (file)
@@ -2435,25 +2435,21 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment,
 
       if (v->new_reg)
        {
-         /* If the giv is an address destination, it could be something other
-            than a simple register, these have to be treated differently.  */
-         if (v->giv_type == DEST_REG)
-           splittable_regs[REGNO (v->new_reg)] = value;
-
-         /* If an addr giv was combined with another addr giv, then we
-            can only split this giv if the addr giv it was combined with
-            was reduced.  This is because the value of v->new_reg is
-            meaningless in this case.  (There is no problem if it was
-            combined with a dest_reg giv which wasn't reduced, v->new_reg
-            is still meaningful in this case.)  */
-
-         else if (v->same && v->same->giv_type == DEST_ADDR
-                 && ! v->same->new_reg) 
+         /* If a giv was combined with another giv, then we can only split
+            this giv if the giv it was combined with was reduced.  This
+            is because the value of v->new_reg is meaningless in this
+            case.  */
+         if (v->same && ! v->same->new_reg)
            {
              if (loop_dump_stream)
                fprintf (loop_dump_stream,
-                        "DEST_ADDR giv not split, because combined with unreduced DEST_ADDR giv.\n");
+                        "giv combined with unreduced giv not split.\n");
+             continue;
            }
+         /* If the giv is an address destination, it could be something other
+            than a simple register, these have to be treated differently.  */
+         else if (v->giv_type == DEST_REG)
+           splittable_regs[REGNO (v->new_reg)] = value;
          else
            {
              /* Splitting address givs is useful since it will often allow us