diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-17 22:18:59 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-17 22:18:59 +0000 |
commit | 604c4de747a74a7b52bec1893133688439b9d269 (patch) | |
tree | 746da641a670a45baec442090a6d5de50aee6389 /gcc/function.h | |
parent | 2768cf814272d587bca00613a003b8eb736be754 (diff) | |
download | ppe42-gcc-604c4de747a74a7b52bec1893133688439b9d269.tar.gz ppe42-gcc-604c4de747a74a7b52bec1893133688439b9d269.zip |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29487 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 8 |
1 files changed, 8 insertions, 0 deletions
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; |