diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-06 17:53:31 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-05-06 17:53:31 -0400 |
commit | d7e09326f25d83fde3215698ff2520e29c0828dd (patch) | |
tree | 11df0441dd9deb61f4c634d796f3bb94db6718a6 /gcc | |
parent | f88b0a82c36eefd3b89399ce2b8f8ce1968da8c5 (diff) | |
download | gcc-d7e09326f25d83fde3215698ff2520e29c0828dd.zip gcc-d7e09326f25d83fde3215698ff2520e29c0828dd.tar.gz gcc-d7e09326f25d83fde3215698ff2520e29c0828dd.tar.bz2 |
(save_for_inline_copying, expand_inline_function): Copy
CALL_INSN_FUNCTION_USAGE field.
From-SVN: r7248
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/integrate.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index eb31357..e0b6f7a 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -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); |