aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2001-06-21 12:50:56 -0400
committerDJ Delorie <dj@gcc.gnu.org>2001-06-21 12:50:56 -0400
commitc0e7830f8cb99c695c5026f1685f86a5fdef8df5 (patch)
tree38ad78224be3ce9d772ab85dbd0b522179b799d5 /gcc/toplev.c
parent2147b1541cb6a841b54cf92f025ddc62857998e5 (diff)
downloadgcc-c0e7830f8cb99c695c5026f1685f86a5fdef8df5.zip
gcc-c0e7830f8cb99c695c5026f1685f86a5fdef8df5.tar.gz
gcc-c0e7830f8cb99c695c5026f1685f86a5fdef8df5.tar.bz2
integrate.c (ggc.h): Include.
* integrate.c (ggc.h): Include. (initial_value_pair, initial_value_struct, setup_initial_hard_reg_value_integration): Add prototypes. (expand_inline_function): Call setup_initial_hard_reg_value_integration. (has_func_hard_reg_initial_val, get_func_hard_reg_initial_val, get_hard_reg_initial_val, has_hard_reg_initial_val): New functions to keep track of values present at the start of a function. (mark_hard_reg_initial_vals): New, for gc. (setup_initial_hard_reg_value_integration): New. Sets up pseudo mappings for initial values. (emit_initial_value_sets): New. Emits code to set initial value pseudos. * integrate.h: Add prototypes for new functions. * function.h (struct function): Add hard_reg_initial_vals field. * function.c (integrate.h): Include. (mark_function_status): Call mark_hard_reg_initial_vals. * toplev.c (integrate.h): Include. (rest_of_compilation): Call emit_initial_value_sets. From-SVN: r43486
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index eb6ec52..6e75187 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -65,6 +65,7 @@ Boston, MA 02111-1307, USA. */
#include "params.h"
#include "reload.h"
#include "dwarf2asm.h"
+#include "integrate.h"
#ifdef DWARF_DEBUGGING_INFO
#include "dwarfout.h"
@@ -2863,9 +2864,11 @@ rest_of_compilation (decl)
distinguish between the return value of this function and the
return value of called functions. Also, we can remove all SETs
of subregs of hard registers; they are only here because of
- integrate.*/
+ integrate. Also, we can now initialize pseudos intended to
+ carry magic hard reg data throughout the function. */
rtx_equal_function_value_matters = 0;
purge_hard_subreg_sets (get_insns ());
+ emit_initial_value_sets ();
/* Don't return yet if -Wreturn-type; we need to do jump_optimize. */
if ((rtl_dump_and_exit || flag_syntax_only) && !warn_return_type)