summaryrefslogtreecommitdiff
path: root/gcc/c-pch.c
diff options
context:
space:
mode:
authordnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-13 13:30:31 +0000
committerdnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-13 13:30:31 +0000
commitdbb19e66159becfdf5b57b10f562ae0a9472fe92 (patch)
tree7d6bdf3659c4ca2ac9b6e81c946d8961451da717 /gcc/c-pch.c
parentc07e5b8b23ee24d8beedae3817de0543490f40e5 (diff)
downloadgcc-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.c25
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. */