summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cgraphbuild.c9
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 15bb3fb19f6..152c2793e5d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2010-10-26 Jan Hubicka <jh@suse.cz>
+ * cgraphbuild.c (build_cgraph_edges): Use ipa-reference to represent OMP.
+
+2010-10-26 Jan Hubicka <jh@suse.cz>
+
* ipa.c (process_references): Enqueue all referenced nodes;
mark as reachable only non-external nodes.
(cgraph_remove_unreachable_nodes): All referenced nodes should
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c
index 3bd42e34039..3800f13a563 100644
--- a/gcc/cgraphbuild.c
+++ b/gcc/cgraphbuild.c
@@ -361,16 +361,19 @@ build_cgraph_edges (void)
&& gimple_omp_parallel_child_fn (stmt))
{
tree fn = gimple_omp_parallel_child_fn (stmt);
- cgraph_mark_needed_node (cgraph_node (fn));
+ ipa_record_reference (node, NULL, cgraph_node (fn),
+ NULL, IPA_REF_ADDR, stmt);
}
if (gimple_code (stmt) == GIMPLE_OMP_TASK)
{
tree fn = gimple_omp_task_child_fn (stmt);
if (fn)
- cgraph_mark_needed_node (cgraph_node (fn));
+ ipa_record_reference (node, NULL, cgraph_node (fn),
+ NULL, IPA_REF_ADDR, stmt);
fn = gimple_omp_task_copy_fn (stmt);
if (fn)
- cgraph_mark_needed_node (cgraph_node (fn));
+ ipa_record_reference (node, NULL, cgraph_node (fn),
+ NULL, IPA_REF_ADDR, stmt);
}
}
for (gsi = gsi_start (phi_nodes (bb)); !gsi_end_p (gsi); gsi_next (&gsi))