summaryrefslogtreecommitdiffstats
path: root/gcc/function.h
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-17 22:18:59 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-17 22:18:59 +0000
commit604c4de747a74a7b52bec1893133688439b9d269 (patch)
tree746da641a670a45baec442090a6d5de50aee6389 /gcc/function.h
parent2768cf814272d587bca00613a003b8eb736be754 (diff)
downloadppe42-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.h8
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;
OpenPOWER on IntegriCloud