diff options
author | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-13 13:30:31 +0000 |
---|---|---|
committer | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-13 13:30:31 +0000 |
commit | dbb19e66159becfdf5b57b10f562ae0a9472fe92 (patch) | |
tree | 7d6bdf3659c4ca2ac9b6e81c946d8961451da717 /gcc/c-pch.c | |
parent | c07e5b8b23ee24d8beedae3817de0543490f40e5 (diff) | |
download | gcc-dbb19e66159becfdf5b57b10f562ae0a9472fe92.tar.gz |
2010-04-12 Diego Novillo <dnovillo@google.com>
* Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
* c-pch.c: Include timevar.h.
(c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
(c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE
timers.
* ggc-common.c: Include timevar.h.
(gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT
timers.
* timevar.def (TV_PCH_SAVE): Define.
(TV_PCH_CPP_SAVE): Define.
(TV_PCH_PTR_REALLOC): Define.
(TV_PCH_PTR_SORT): Define.
(TV_PCH_RESTORE): Define.
(TV_PCH_CPP_RESTORE): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158266 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-pch.c')
-rw-r--r-- | gcc/c-pch.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/gcc/c-pch.c b/gcc/c-pch.c index 8433f8633dd..951ab1fc303 100644 --- a/gcc/c-pch.c +++ b/gcc/c-pch.c @@ -35,6 +35,7 @@ along with GCC; see the file COPYING3. If not see #include "hosthooks.h" #include "target.h" #include "opts.h" +#include "timevar.h" /* This is a list of flag variables that must match exactly, and their names for the error message. The possible values for *flag_var must @@ -178,6 +179,8 @@ c_common_write_pch (void) long written; struct c_pch_header h; + timevar_push (TV_PCH_SAVE); + (*debug_hooks->handle_pch) (1); cpp_write_pch_deps (parse_in, pch_outfile); @@ -211,13 +214,18 @@ c_common_write_pch (void) fatal_error ("can%'t seek in %s: %m", asm_file_name); gt_pch_save (pch_outfile); + + timevar_push (TV_PCH_CPP_SAVE); cpp_write_pch_state (parse_in, pch_outfile); + timevar_pop (TV_PCH_CPP_SAVE); if (fseek (pch_outfile, 0, SEEK_SET) != 0 || fwrite (get_ident (), IDENT_LENGTH, 1, pch_outfile) != 1) fatal_error ("can%'t write %s: %m", pch_file); fclose (pch_outfile); + + timevar_pop (TV_PCH_SAVE); } /* Check the PCH file called NAME, open on FD, to see if it can be @@ -371,12 +379,14 @@ c_common_read_pch (cpp_reader *pfile, const char *name, expanded_location saved_loc; bool saved_trace_includes; + timevar_push (TV_PCH_RESTORE); + f = fdopen (fd, "rb"); if (f == NULL) { cpp_errno (pfile, CPP_DL_ERROR, "calling fdopen"); close (fd); - return; + goto end; } cpp_get_callbacks (parse_in)->valid_pch = NULL; @@ -385,7 +395,7 @@ c_common_read_pch (cpp_reader *pfile, const char *name, { cpp_errno (pfile, CPP_DL_ERROR, "reading"); fclose (f); - return; + goto end; } if (!flag_preprocess_only) @@ -417,15 +427,21 @@ c_common_read_pch (cpp_reader *pfile, const char *name, saved_loc = expand_location (line_table->highest_line); saved_trace_includes = line_table->trace_includes; + timevar_push (TV_PCH_CPP_RESTORE); cpp_prepare_state (pfile, &smd); + timevar_pop (TV_PCH_CPP_RESTORE); gt_pch_restore (f); + timevar_push (TV_PCH_CPP_RESTORE); if (cpp_read_state (pfile, name, f, smd) != 0) { fclose (f); - return; + timevar_pop (TV_PCH_CPP_RESTORE); + goto end; } + timevar_pop (TV_PCH_CPP_RESTORE); + fclose (f); @@ -437,6 +453,9 @@ c_common_read_pch (cpp_reader *pfile, const char *name, been loaded. */ if (lang_post_pch_load) (*lang_post_pch_load) (); + +end: + timevar_pop (TV_PCH_RESTORE); } /* Indicate that no more PCH files should be read. */ |