Remove Feb 28's FUNCTION_NEEDS_STATIC_CHAIN changes.

From-SVN: r9106
This commit is contained in:
Per Bothner 1995-03-01 19:33:25 -08:00
parent 874a07447a
commit b001a02f29
3 changed files with 6 additions and 21 deletions

View File

@ -4160,15 +4160,6 @@ expand_expr (exp, target, tmode, modifier)
/* Mark as non-local and addressable. */
DECL_NONLOCAL (exp) = 1;
/* This is currently too late to be useful, since
init_function_start needs to know whether a static chain
is needed. However, it would be a useful optimization
if we could defer setting up static chains and trampolines
until we see that we actually need them due to references
to non-local non-static variables. */
FUNCTION_NEEDS_STATIC_CHAIN (current_function_decl) = 1;
mark_addressable (exp);
if (GET_CODE (DECL_RTL (exp)) != MEM)
abort ();
@ -6199,7 +6190,7 @@ expand_expr (exp, target, tmode, modifier)
/* Are we taking the address of a nested function? */
if (TREE_CODE (TREE_OPERAND (exp, 0)) == FUNCTION_DECL
&& FUNCTION_NEEDS_STATIC_CHAIN (TREE_OPERAND (exp, 0)))
&& decl_function_context (TREE_OPERAND (exp, 0)) != 0)
{
op0 = trampoline_address (TREE_OPERAND (exp, 0));
op0 = force_operand (op0, target);

View File

@ -4246,18 +4246,12 @@ rtx
lookup_static_chain (decl)
tree decl;
{
tree context, link;
if (TREE_CODE (decl) == FUNCTION_DECL
? ! FUNCTION_NEEDS_STATIC_CHAIN (decl)
: ! FUNCTION_NEEDS_STATIC_CHAIN (current_function_decl))
return 0;
context = decl_function_context (decl);
tree context = decl_function_context (decl);
tree link;
if (context == 0)
return 0;
/* We treat inline_function_decl as an alias for the current function
because that is the inline function whose vars, types, etc.
are being merged into the current function.
@ -4713,7 +4707,7 @@ init_function_start (subr, filename, line)
/* Nonzero if this is a nested function that uses a static chain. */
current_function_needs_context
= FUNCTION_NEEDS_STATIC_CHAIN (current_function_decl);
= (decl_function_context (current_function_decl) != 0);
/* Set if a call to setjmp is seen. */
current_function_calls_setjmp = 0;

View File

@ -1969,7 +1969,7 @@ staticp (arg)
case FUNCTION_DECL:
/* Nested functions aren't static, since taking their address
involves a trampoline. */
return ! FUNCTION_NEEDS_STATIC_CHAIN (arg);
return decl_function_context (arg) == 0;
case VAR_DECL:
return TREE_STATIC (arg) || DECL_EXTERNAL (arg);