From a42950efca11c5658a75468901296deb1fa14b81 Mon Sep 17 00:00:00 2001 From: wilson Date: Sat, 18 Jun 1994 20:44:41 +0000 Subject: [PATCH] (move_movables): Copy CALL_INSN_FUNCTION_USAGE field. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7517 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/loop.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/gcc/loop.c b/gcc/loop.c index 6469707c07d..dc39fdfd3d4 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -1786,7 +1786,14 @@ move_movables (movables, threshold, insn_count, loop_start, end, nregs) fn_address_insn); if (GET_CODE (temp) == CALL_INSN) - i1 = emit_call_insn_before (body, loop_start); + { + i1 = emit_call_insn_before (body, loop_start); + /* Because the USAGE information potentially + contains objects other than hard registers + we need to copy it. */ + CALL_INSN_FUNCTION_USAGE (i1) = + copy_rtx (CALL_INSN_FUNCTION_USAGE (temp)); + } else i1 = emit_insn_before (body, loop_start); if (first == 0) @@ -1822,7 +1829,14 @@ move_movables (movables, threshold, insn_count, loop_start, end, nregs) i1 = emit_insn_before (sequence, loop_start); } else if (GET_CODE (p) == CALL_INSN) - i1 = emit_call_insn_before (PATTERN (p), loop_start); + { + i1 = emit_call_insn_before (PATTERN (p), loop_start); + /* Because the USAGE information potentially + contains objects other than hard registers + we need to copy it. */ + CALL_INSN_FUNCTION_USAGE (i1) = + copy_rtx (CALL_INSN_FUNCTION_USAGE (p)); + } else i1 = emit_insn_before (PATTERN (p), loop_start); -- 2.11.0