diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-29 10:36:10 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-11-29 10:36:10 +0000 |
commit | fe3e33698a0ed665ec87da4d2b744f62b7002d82 (patch) | |
tree | 03e83d5dac4b9d1257c9b47f47f7a4c745098503 /gcc/lto | |
parent | 253e1cae6a3e370e02e85268096247084556d79f (diff) | |
download | gcc-fe3e33698a0ed665ec87da4d2b744f62b7002d82.tar.gz |
PR lto/59326
* tree-core.h (enum omp_clause_schedule_kind): Add
OMP_CLAUSE_SCHEDULE_LAST.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
(enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
(enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
* lto-streamer-out.c (lto_is_streamable): Allow streaming
OMP_CLAUSE.
(DFS_write_tree_body): Handle OMP_CLAUSE.
* tree-streamer-out.c (pack_ts_omp_clause_value_fields): New
function.
(streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
(write_ts_omp_clause_tree_pointers): New function.
(streamer_write_tree_body): Call it for OMP_CLAUSE.
(streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
* tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New
function.
(unpack_value_fields): Call it for OMP_CLAUSE.
(streamer_alloc_tree): Handle OMP_CLAUSE.
(lto_input_ts_omp_clause_tree_pointers): New function.
(streamer_read_tree_body): Call it for OMP_CLAUSE.
lto/
* lto.c (mentions_vars_p_omp_clause): New function.
(mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
after return stmts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205512 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/lto/lto.c | 24 |
2 files changed, 23 insertions, 8 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 5beccad89aa..3ce3a32c164 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,10 @@ +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. diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 8f2f1b0f0c8..26084bf7d41 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -904,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 @@ -922,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: @@ -931,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: @@ -961,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)) |