diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1994-06-18 13:44:41 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1994-06-18 13:44:41 -0700 |
commit | f97d29ce9ccf582aca6ecbe1780a53b3e760aa8b (patch) | |
tree | a8675eebd5b6dab1c25313dba2592d73e419ad22 /gcc/loop.c | |
parent | 0eb111c2d9247d79c880474c8573a145fb06ac69 (diff) | |
download | gcc-f97d29ce9ccf582aca6ecbe1780a53b3e760aa8b.zip gcc-f97d29ce9ccf582aca6ecbe1780a53b3e760aa8b.tar.gz gcc-f97d29ce9ccf582aca6ecbe1780a53b3e760aa8b.tar.bz2 |
(move_movables): Copy CALL_INSN_FUNCTION_USAGE field.
From-SVN: r7517
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -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); |