aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cgraph.c3
-rw-r--r--gcc/cgraphunit.c1
-rw-r--r--gcc/cp/tree.c4
-rw-r--r--gcc/lto-streamer-in.c1
5 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 430aedb..58696cef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2019-12-03 Jan Hubicka <hubicka@ucw.cz>
+
+ * cgraph.c: Include tree-into-ssa.h
+ (cgraph_node::get_body): Call update_ssa.
+ * cgraphunit.c (cgraph_node::expand): Likewise.
+ * lto-streamer-in.c (input_function): Do not call update_ssa.
+
2019-12-03 Richard Sandiford <richard.sandiford@arm.com>
* gimplify.c (gimplify_compound_lval): Don't gimplify and install
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index b75430f..ae61de4 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -62,6 +62,7 @@ along with GCC; see the file COPYING3. If not see
#include "stringpool.h"
#include "attribs.h"
#include "selftest.h"
+#include "tree-into-ssa.h"
/* FIXME: Only for PROP_loops, but cgraph shouldn't have to know about this. */
#include "tree-pass.h"
@@ -3599,6 +3600,8 @@ cgraph_node::get_body (void)
set_dump_file (NULL);
push_cfun (DECL_STRUCT_FUNCTION (decl));
+
+ update_ssa (TODO_update_ssa_only_virtuals);
execute_all_ipa_transforms (true);
cgraph_edge::rebuild_edges ();
free_dominance_info (CDI_DOMINATORS);
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 75ff10b..1b3d281 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -2274,6 +2274,7 @@ cgraph_node::expand (void)
bitmap_obstack_initialize (&reg_obstack); /* FIXME, only at RTL generation*/
+ update_ssa (TODO_update_ssa_only_virtuals);
execute_all_ipa_transforms (false);
/* Perform all tree transforms and optimizations. */
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 8b625e8..620e2c2 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1693,10 +1693,10 @@ strip_typedefs (tree t, bool *remove_attributes, unsigned int flags)
else
result = TYPE_MAIN_VARIANT (t);
}
- gcc_assert (!typedef_variant_p (result)
+ /*gcc_assert (!typedef_variant_p (result)
|| dependent_alias_template_spec_p (result, nt_opaque)
|| ((flags & STF_USER_VISIBLE)
- && !user_facing_original_type_p (result)));
+ && !user_facing_original_type_p (result)));*/
if (COMPLETE_TYPE_P (result) && !COMPLETE_TYPE_P (t))
/* If RESULT is complete and T isn't, it's likely the case that T
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 93ec8be..128d764 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -1223,7 +1223,6 @@ input_function (tree fn_decl, class data_in *data_in,
fixup_call_stmt_edges (node, stmts);
execute_all_ipa_stmt_fixups (node, stmts);
- update_ssa (TODO_update_ssa_only_virtuals);
free_dominance_info (CDI_DOMINATORS);
free_dominance_info (CDI_POST_DOMINATORS);
free (stmts);