From: David Malcolm <dmalcolm@redhat.com>
To: jit@gcc.gnu.org, gcc-patches@gcc.gnu.org
Cc: "Joseph S. Myers" <joseph@codesourcery.com>,
David Malcolm <dmalcolm@redhat.com>
Subject: [jit] Update the various "*_c_finalize" functions
Date: Wed, 24 Sep 2014 14:34:00 -0000 [thread overview]
Message-ID: <1411568998-18080-1-git-send-email-dmalcolm@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1409232259550.8132@digraph.polyomino.org.uk>
Joseph - thanks for looking through the jit diff.
I plan to fix the issues you raise as a series of separate patches.
Here's the first:
On Tue, 2014-09-23 at 23:27 +0000, Joseph S. Myers wrote:
> Various *_finalize functions are missing comments explaining their
> semantics. Also the return type should be on the line before the function
> name.
I've committed the following fix to branch dmalcolm/jit:
Five of the *_c_finalize functions were empty, since their files
contain no state [1][2]. Delete them.
Fix up the formatting of the remaining *_c_finalize functions, and
ensure they have descriptive leading comments.
[1] Most of these lost their state when the symbol_table class was
introduced, in r214422.
[2] predict.c has state in the form of these variables:
static sreal real_zero, real_one, real_almost_one, real_br_prob_base,
real_inv_br_prob_base, real_one_half, real_bb_freq_max;
and, within function estimate_bb_frequencies:
static int real_values_initialized = 0;
but it seems to me that this state doesn't need to be reset between
repeated in-process invocations.
gcc/ChangeLog.jit:
* cgraph.h (cgraphbuild_c_finalize): Delete prototype of empty
function.
(ipa_c_finalize): Likewise.
(predict_c_finalize): Likewise.
(symtab_c_finalize): Likewise.
(varpool_c_finalize): Likewise.
* cgraph.c (cgraph_c_finalize): Add leading comment. Put return
type on line before function name.
* cgraphunit.c (cgraphunit_c_finalize): Likewise.
* dwarf2out.c (dwarf2out_c_finalize): Likewise.
* gcse.c (gcse_c_finalize): Likewise.
* ipa-cp.c (ipa_cp_c_finalize): Likewise.
* ipa-reference.c (ipa_reference_c_finalize): Likewise.
* params.c (params_c_finalize): Update leading comment to match
format of the others mentioned above.
* cgraphbuild.c (cgraphbuild_c_finalize): Delete empty function.
* ipa.c (ipa_c_finalize): Likewise.
* predict.c (predict_c_finalize): Likewise.
* symtab.c (symtab_c_finalize): Likewise.
* varpool.c (varpool_c_finalize): Likewise.
* toplev.c (toplev::finalize): Remove calls to empty functions
cgraphbuild_c_finalize, ipa_c_finalize, predict_c_finalize,
symtab_c_finalize, varpool_c_finalize.
---
gcc/cgraph.c | 6 +++++-
gcc/cgraph.h | 9 ---------
gcc/cgraphbuild.c | 4 ----
gcc/cgraphunit.c | 6 +++++-
gcc/dwarf2out.c | 6 +++++-
gcc/gcse.c | 6 +++++-
gcc/ipa-cp.c | 3 +++
gcc/ipa-reference.c | 6 +++++-
gcc/ipa.c | 4 ----
gcc/params.c | 3 ++-
gcc/predict.c | 4 ----
gcc/symtab.c | 4 ----
gcc/toplev.c | 5 -----
gcc/varpool.c | 4 ----
14 files changed, 30 insertions(+), 40 deletions(-)
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 736dd73..1721634 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -3078,7 +3078,11 @@ gimple_check_call_matching_types (gimple call_stmt, tree callee,
return true;
}
-void cgraph_c_finalize (void)
+/* Reset all state within cgraph.c so that we can rerun the compiler
+ within the same process. For use by toplev::finalize. */
+
+void
+cgraph_c_finalize (void)
{
symtab = NULL;
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index c407a3b..fd45e01 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -1958,25 +1958,16 @@ void tree_function_versioning (tree, tree, vec<ipa_replace_map *, va_gc> *,
/* In cgraphbuild.c */
int compute_call_stmt_bb_frequency (tree, basic_block bb);
void record_references_in_initializer (tree, bool);
-void cgraphbuild_c_finalize (void);
/* In ipa.c */
void cgraph_build_static_cdtor (char which, tree body, int priority);
void ipa_discover_readonly_nonaddressable_vars (void);
-void ipa_c_finalize (void);
/* In ipa-cp.c */
void ipa_cp_c_finalize (void);
-/* In predict.c */
-void predict_c_finalize (void);
-
-/* In symtab.c */
-void symtab_c_finalize (void);
-
/* In varpool.c */
tree ctor_for_folding (tree);
-void varpool_c_finalize (void);
/* Return true when the symbol is real symbol, i.e. it is not inline clone
or abstract function kept for debug info purposes only. */
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c
index 5610064..96d7015 100644
--- a/gcc/cgraphbuild.c
+++ b/gcc/cgraphbuild.c
@@ -576,7 +576,3 @@ make_pass_remove_cgraph_callee_edges (gcc::context *ctxt)
{
return new pass_remove_cgraph_callee_edges (ctxt);
}
-
-void cgraphbuild_c_finalize (void)
-{
-}
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 1f52d35..9a3834a 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -2288,7 +2288,11 @@ symbol_table::finalize_compilation_unit (void)
timevar_pop (TV_CGRAPH);
}
-void cgraphunit_c_finalize (void)
+/* Reset all state within cgraphunit.c so that we can rerun the compiler
+ within the same process. For use by toplev::finalize. */
+
+void
+cgraphunit_c_finalize (void)
{
gcc_assert (cgraph_new_nodes.length () == 0);
cgraph_new_nodes.truncate (0);
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 5dd7188..6617119 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -24566,7 +24566,11 @@ dwarf2out_finish (const char *filename)
output_indirect_strings ();
}
-void dwarf2out_c_finalize (void)
+/* Reset all state within dwarf2out.c so that we can rerun the compiler
+ within the same process. For use by toplev::finalize. */
+
+void
+dwarf2out_c_finalize (void)
{
last_var_location_insn = NULL;
cached_next_real_insn = NULL;
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 085b1f6..3a59066 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4288,7 +4288,11 @@ make_pass_rtl_hoist (gcc::context *ctxt)
return new pass_rtl_hoist (ctxt);
}
-void gcse_c_finalize (void)
+/* Reset all state within gcse.c so that we can rerun the compiler
+ within the same process. For use by toplev::finalize. */
+
+void
+gcse_c_finalize (void)
{
test_insn = NULL;
}
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 33a46f2..163ed4b 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -3829,6 +3829,9 @@ make_pass_ipa_cp (gcc::context *ctxt)
return new pass_ipa_cp (ctxt);
}
+/* Reset all state within ipa-cp.c so that we can rerun the compiler
+ within the same process. For use by toplev::finalize. */
+
void
ipa_cp_c_finalize (void)
{
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index 39f6cb0..f3af47a 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -1174,7 +1174,11 @@ make_pass_ipa_reference (gcc::context *ctxt)
return new pass_ipa_reference (ctxt);
}
-void ipa_reference_c_finalize (void)
+/* Reset all state within ipa-reference.c so that we can rerun the compiler
+ within the same process. For use by toplev::finalize. */
+
+void
+ipa_reference_c_finalize (void)
{
ipa_init_p = false;
}
diff --git a/gcc/ipa.c b/gcc/ipa.c
index f10e7bd..5afacd8 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -1090,10 +1090,6 @@ make_pass_ipa_cdtor_merge (gcc::context *ctxt)
return new pass_ipa_cdtor_merge (ctxt);
}
-void ipa_c_finalize (void)
-{
-}
-
/* Invalid pointer representing BOTTOM for single user dataflow. */
#define BOTTOM ((cgraph_node *)(size_t) 2)
diff --git a/gcc/params.c b/gcc/params.c
index 2b72c58..7aa96e2 100644
--- a/gcc/params.c
+++ b/gcc/params.c
@@ -84,7 +84,8 @@ finish_params (void)
params_finished = true;
}
-/* Reset all state in params.c. */
+/* Reset all state within params.c so that we can rerun the compiler
+ within the same process. For use by toplev::finalize. */
void
params_c_finalize (void)
diff --git a/gcc/predict.c b/gcc/predict.c
index b0d572f..eb5db2a 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -3237,7 +3237,3 @@ rebuild_frequencies (void)
gcc_unreachable ();
timevar_pop (TV_REBUILD_FREQUENCIES);
}
-
-void predict_c_finalize (void)
-{
-}
diff --git a/gcc/symtab.c b/gcc/symtab.c
index fd9cbac..792b3b5 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -1755,10 +1755,6 @@ symtab_node::semantically_equivalent_p (symtab_node *target)
return bb == ba;
}
-void symtab_c_finalize (void)
-{
-}
-
/* Classify symbol symtab node for partitioning. */
enum symbol_partitioning_class
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 37f54ef..58180f4 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -2066,15 +2066,10 @@ toplev::finalize (void)
this_target_rtl->target_specific_initialized = false;
cgraph_c_finalize ();
- cgraphbuild_c_finalize ();
cgraphunit_c_finalize ();
dwarf2out_c_finalize ();
gcse_c_finalize ();
- ipa_c_finalize ();
ipa_cp_c_finalize ();
ipa_reference_c_finalize ();
params_c_finalize ();
- predict_c_finalize ();
- symtab_c_finalize ();
- varpool_c_finalize ();
}
diff --git a/gcc/varpool.c b/gcc/varpool.c
index 5b6d76b..72971d6 100644
--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -781,7 +781,3 @@ varpool_node::call_for_node_and_aliases (bool (*callback) (varpool_node *,
}
return false;
}
-
-void varpool_c_finalize (void)
-{
-}
--
1.7.11.7
next prev parent reply other threads:[~2014-09-24 14:34 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-23 18:48 [PATCH] Merger of the "dmalcolm/jit" branch David Malcolm
2014-09-23 23:27 ` Joseph S. Myers
2014-09-24 14:34 ` David Malcolm [this message]
2014-09-24 16:21 ` [jit] Add copyright and license headers and footers David Malcolm
2014-09-24 16:39 ` [jit] Use standard initial includes David Malcolm
2014-09-24 17:54 ` [jit] Eliminate fixed-size buffers used with vsnprintf David Malcolm
2014-09-24 20:24 ` Joseph S. Myers
2014-09-25 4:04 ` Jeff Law
2014-09-26 14:29 ` [jit] Eliminate fixed-size buffer for a context's first error message David Malcolm
2014-09-25 1:02 ` [jit] Add internal API documention and rename some variables David Malcolm
2014-09-25 16:06 ` [jit] Expose choose_tmpdir and use it when building tmpdir for jit compilation David Malcolm
2014-09-25 17:33 ` [jit] Use pex_one rather than system when assembling/linking David Malcolm
2014-09-25 20:33 ` [jit] Avoiding hardcoding "gcc"; supporting accelerators? David Malcolm
2014-09-26 21:55 ` Joseph S. Myers
2014-10-07 14:31 ` [jit] Use the full name of the installed driver binary David Malcolm
2014-09-26 20:31 ` [jit] Experimental in-process embedding of the gcc driver into the jit David Malcolm
2014-10-02 16:16 ` [jit] Implement documentation targets within jit/Make-lang.in David Malcolm
2014-10-13 21:16 ` [PATCH] Merger of the "dmalcolm/jit" branch Jeff Law
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1411568998-18080-1-git-send-email-dmalcolm@redhat.com \
--to=dmalcolm@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jit@gcc.gnu.org \
--cc=joseph@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).