diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-04 12:54:49 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-04 12:54:49 +0000 |
commit | bdff91a14bf8e5d18b1eb47bb529894482065762 (patch) | |
tree | 4515b21fe5d3e25b4d5c8f907d3e78834e1e40ac /gcc/lto | |
parent | 0158370253d4aef042c4d67b2c0278ded58d83fd (diff) | |
parent | 8192796762b4781de57ce2a6c104a71dcbd874e3 (diff) | |
download | gcc-bdff91a14bf8e5d18b1eb47bb529894482065762.tar.gz |
Merge with trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@205668 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/ChangeLog | 21 | ||||
-rw-r--r-- | gcc/lto/lto-lang.c | 6 | ||||
-rw-r--r-- | gcc/lto/lto-object.c | 5 | ||||
-rw-r--r-- | gcc/lto/lto-partition.c | 5 | ||||
-rw-r--r-- | gcc/lto/lto-symtab.c | 6 | ||||
-rw-r--r-- | gcc/lto/lto.c | 71 |
6 files changed, 101 insertions, 13 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 1b83f22046a..6d6ebf6717d 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,24 @@ +2013-11-29 Jakub Jelinek <jakub@redhat.com> + Richard Biener <rguenther@suse.de> + + PR lto/59326 + * lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE. + +2013-11-29 Jakub Jelinek <jakub@redhat.com> + + PR lto/59326 + * lto.c (mentions_vars_p_omp_clause): New function. + (mentions_vars_p): Call it for OMP_CLAUSE. Remove break; + after return stmts. + +2013-11-22 Andrew MacLeod <amacleod@redhat.com> + + * lto.c: Add required include files from gimple.h. + * lto-lang.c: Likewise + * lto-object.c: Likewise + * lto-partition.c: Likewise + * lto-symtab.c: Likewise + 2013-11-18 Trevor Saunders <tsaunders@mozilla.com> * lto-partition.c lto-symtab.c lto.c Adjust. diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c index a5f5d44bd58..3e843ec8166 100644 --- a/gcc/lto/lto-lang.c +++ b/gcc/lto/lto-lang.c @@ -33,6 +33,11 @@ along with GCC; see the file COPYING3. If not see #include "lto-tree.h" #include "lto.h" #include "tree-inline.h" +#include "basic-block.h" +#include "tree-ssa-alias.h" +#include "internal-fn.h" +#include "gimple-expr.h" +#include "is-a.h" #include "gimple.h" #include "diagnostic-core.h" #include "toplev.h" @@ -1302,6 +1307,5 @@ lto_tree_node_structure (union lang_tree_node *t ATTRIBUTE_UNUSED) return TS_LTO_GENERIC; } -#include "ggc.h" #include "gtype-lto.h" #include "gt-lto-lto-lang.h" diff --git a/gcc/lto/lto-object.c b/gcc/lto/lto-object.c index 19f10ccb978..b4518bb55b9 100644 --- a/gcc/lto/lto-object.c +++ b/gcc/lto/lto-object.c @@ -22,6 +22,11 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "basic-block.h" +#include "tree-ssa-alias.h" +#include "internal-fn.h" +#include "gimple-expr.h" +#include "is-a.h" #include "gimple.h" #include "diagnostic-core.h" #include "lto.h" diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c index 42d78307ded..95ec7fabf86 100644 --- a/gcc/lto/lto-partition.c +++ b/gcc/lto/lto-partition.c @@ -23,6 +23,11 @@ along with GCC; see the file COPYING3. If not see #include "toplev.h" #include "tree.h" #include "gcc-symtab.h" +#include "basic-block.h" +#include "tree-ssa-alias.h" +#include "internal-fn.h" +#include "gimple-expr.h" +#include "is-a.h" #include "gimple.h" #include "tm.h" #include "cgraph.h" diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c index 7c7075e50fc..87d6332ab2b 100644 --- a/gcc/lto/lto-symtab.c +++ b/gcc/lto/lto-symtab.c @@ -23,8 +23,12 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "diagnostic-core.h" #include "tree.h" +#include "basic-block.h" +#include "tree-ssa-alias.h" +#include "internal-fn.h" +#include "gimple-expr.h" +#include "is-a.h" #include "gimple.h" -#include "ggc.h" #include "hashtab.h" #include "plugin-api.h" #include "lto-streamer.h" diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index c43fe8476ec..e529fdbe2bf 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -28,16 +28,17 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic-core.h" #include "tm.h" #include "cgraph.h" -#include "ggc.h" #include "tree-ssa-operands.h" #include "tree-pass.h" #include "langhooks.h" -#include "vec.h" #include "bitmap.h" -#include "pointer-set.h" #include "ipa-prop.h" #include "common.h" #include "debug.h" +#include "tree-ssa-alias.h" +#include "internal-fn.h" +#include "gimple-expr.h" +#include "is-a.h" #include "gimple.h" #include "lto.h" #include "lto-tree.h" @@ -903,6 +904,19 @@ mentions_vars_p_expr (tree t) return false; } +/* Check presence of pointers to decls in fields of an OMP_CLAUSE T. */ + +static bool +mentions_vars_p_omp_clause (tree t) +{ + int i; + if (mentions_vars_p_common (t)) + return true; + for (i = omp_clause_num_ops[OMP_CLAUSE_CODE (t)] - 1; i >= 0; --i) + CHECK_VAR (OMP_CLAUSE_OPERAND (t, i)); + return false; +} + /* Check presence of pointers to decls that needs later fixup in T. */ static bool @@ -921,7 +935,6 @@ mentions_vars_p (tree t) case FIELD_DECL: return mentions_vars_p_field_decl (t); - break; case LABEL_DECL: case CONST_DECL: @@ -930,27 +943,21 @@ mentions_vars_p (tree t) case IMPORTED_DECL: case NAMESPACE_DECL: return mentions_vars_p_decl_common (t); - break; case VAR_DECL: return mentions_vars_p_decl_with_vis (t); - break; case TYPE_DECL: return mentions_vars_p_decl_non_common (t); - break; case FUNCTION_DECL: return mentions_vars_p_function (t); - break; case TREE_BINFO: return mentions_vars_p_binfo (t); - break; case PLACEHOLDER_EXPR: return mentions_vars_p_common (t); - break; case BLOCK: case TRANSLATION_UNIT_DECL: @@ -960,7 +967,9 @@ mentions_vars_p (tree t) case CONSTRUCTOR: return mentions_vars_p_constructor (t); - break; + + case OMP_CLAUSE: + return mentions_vars_p_omp_clause (t); default: if (TYPE_P (t)) @@ -1401,6 +1410,36 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map) TREE_STRING_LENGTH (t1)) != 0) return false; + if (code == OMP_CLAUSE) + { + compare_values (OMP_CLAUSE_CODE); + switch (OMP_CLAUSE_CODE (t1)) + { + case OMP_CLAUSE_DEFAULT: + compare_values (OMP_CLAUSE_DEFAULT_KIND); + break; + case OMP_CLAUSE_SCHEDULE: + compare_values (OMP_CLAUSE_SCHEDULE_KIND); + break; + case OMP_CLAUSE_DEPEND: + compare_values (OMP_CLAUSE_DEPEND_KIND); + break; + case OMP_CLAUSE_MAP: + compare_values (OMP_CLAUSE_MAP_KIND); + break; + case OMP_CLAUSE_PROC_BIND: + compare_values (OMP_CLAUSE_PROC_BIND_KIND); + break; + case OMP_CLAUSE_REDUCTION: + compare_values (OMP_CLAUSE_REDUCTION_CODE); + compare_values (OMP_CLAUSE_REDUCTION_GIMPLE_INIT); + compare_values (OMP_CLAUSE_REDUCTION_GIMPLE_MERGE); + break; + default: + break; + } + } + #undef compare_values @@ -1624,6 +1663,16 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map) } } + if (code == OMP_CLAUSE) + { + int i; + + for (i = 0; i < omp_clause_num_ops[OMP_CLAUSE_CODE (t1)]; i++) + compare_tree_edges (OMP_CLAUSE_OPERAND (t1, i), + OMP_CLAUSE_OPERAND (t2, i)); + compare_tree_edges (OMP_CLAUSE_CHAIN (t1), OMP_CLAUSE_CHAIN (t2)); + } + #undef compare_tree_edges return true; |