From e6fd097efca2e3f76d3fe51c55cd124998b7fd42 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Fri, 17 Sep 1999 22:18:59 +0000 Subject: functiion.h (struct function): Add x_whole_function_mode_p. * functiion.h (struct function): Add x_whole_function_mode_p. (retrofit_block): Declare. * function.c (retrofit_block): New function. (identify_blocks): Add assertions. Allow an incomplete set of block notes if we're still generating code for the function. * integrate.c: Include loop.h. (expand_inline_function): Call find_loop_tree_blocks to map block notes to blocks when in whole-function mode. Use retrofit_block to insert new BLOCKs for the inlined function, rather than insert_block. * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel. * Makefile.in (integrate.o): Depend on loop.h. From-SVN: r29487 --- gcc/function.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/function.h') diff --git a/gcc/function.h b/gcc/function.h index 0d70b7d6aed..80053d20c30 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -293,6 +293,12 @@ struct function /* Number of function calls seen so far in current function. */ int x_function_call_count; + /* Nonzero if this function is being processed in function-at-a-time + mode. In other words, if all tree structure for this function, + including the BLOCK tree is created, before RTL generation + commences. */ + int x_whole_function_mode_p; + /* List (chain of TREE_LIST) of LABEL_DECLs for all nonlocal labels (labels to which there can be nonlocal gotos from nested functions) in this function. */ @@ -521,6 +527,8 @@ extern struct function *outer_function_chain; Also store in each NOTE for the beginning or end of a block the index of that block in the vector. */ extern void identify_blocks PROTO((tree, rtx)); +/* Insert a new BLOCK at an appropriate place in the block tree. */ +extern void retrofit_block PROTO((tree, rtx)); /* Return size needed for stack frame based on slots so far allocated. This size counts from zero. It is not rounded to STACK_BOUNDARY; -- cgit v1.2.1