From: Richard Kenner Date: Fri, 17 Jul 1992 09:58:38 +0000 (-0400) Subject: (instantiate_decls{,_1}): Don't do instantiation here if the address X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0c2e838b251178be0a1eb709fc9e3d86d52f6577;p=gcc.git (instantiate_decls{,_1}): Don't do instantiation here if the address is mode-dependent. From-SVN: r1615 --- diff --git a/gcc/function.c b/gcc/function.c index 37a0f47a0c8..87db0bb15cb 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1902,12 +1902,16 @@ instantiate_decls (fndecl, valid_only) /* Process all parameters of the function. */ for (decl = DECL_ARGUMENTS (fndecl); decl; decl = TREE_CHAIN (decl)) { - if (DECL_RTL (decl) && GET_CODE (DECL_RTL (decl)) == MEM) + if (DECL_RTL (decl) && GET_CODE (DECL_RTL (decl)) == MEM + && (! valid_only + || ! mode_dependent_address_p (XEXP (DECL_RTL (decl), 0)))) instantiate_virtual_regs_1 (&XEXP (DECL_RTL (decl), 0), (valid_only ? DECL_RTL (decl) : NULL_RTX), 0); if (DECL_INCOMING_RTL (decl) - && GET_CODE (DECL_INCOMING_RTL (decl)) == MEM) + && GET_CODE (DECL_INCOMING_RTL (decl)) == MEM + && (! valid_only + || ! mode_dependent_address_p (XEXP (DECL_INCOMING_RTL (decl), 0)))) instantiate_virtual_regs_1 (&XEXP (DECL_INCOMING_RTL (decl), 0), (valid_only ? DECL_INCOMING_RTL (decl) : NULL_RTX), @@ -1938,7 +1942,9 @@ instantiate_decls_1 (let, valid_only) tree t; for (t = BLOCK_VARS (let); t; t = TREE_CHAIN (t)) - if (DECL_RTL (t) && GET_CODE (DECL_RTL (t)) == MEM) + if (DECL_RTL (t) && GET_CODE (DECL_RTL (t)) == MEM + && (! valid_only + || ! mode_dependent_address_p (XEXP (DECL_RTL (t), 0)))) instantiate_virtual_regs_1 (& XEXP (DECL_RTL (t), 0), valid_only ? DECL_RTL (t) : NULL_RTX, 0);