OSDN Git Service

(save_for_inline_copying, expand_inline_function): Copy
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 May 1994 21:53:31 +0000 (21:53 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 May 1994 21:53:31 +0000 (21:53 +0000)
CALL_INSN_FUNCTION_USAGE field.

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

gcc/integrate.c

index eb31357..e0b6f7a 100644 (file)
@@ -548,12 +548,17 @@ save_for_inline_copying (fndecl)
          break;
 
        case INSN:
-       case CALL_INSN:
        case JUMP_INSN:
+       case CALL_INSN:
          copy = rtx_alloc (GET_CODE (insn));
+
+         if (GET_CODE (insn) == CALL_INSN)
+           CALL_INSN_FUNCTION_USAGE (copy) =
+                  copy_for_inline (CALL_INSN_FUNCTION_USAGE (insn));
+
          PATTERN (copy) = copy_for_inline (PATTERN (insn));
          INSN_CODE (copy) = -1;
-         LOG_LINKS (copy) = NULL;
+         LOG_LINKS (copy) = NULL_RTX;
          RTX_INTEGRATED_P (copy) = RTX_INTEGRATED_P (insn);
          break;
 
@@ -1758,6 +1763,11 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add
          pattern = copy_rtx_and_substitute (PATTERN (insn), map);
          copy = emit_call_insn (pattern);
 
+         /* Because the USAGE information potentially contains objects other
+            than hard registers, we need to copy it.  */
+         CALL_INSN_FUNCTION_USAGE (copy) =
+            copy_rtx_and_substitute (CALL_INSN_FUNCTION_USAGE (insn), map);
+
 #ifdef HAVE_cc0
          if (cc0_insn)
            try_constants (cc0_insn, map);