diff options
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 9a93427..c75cc9b 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -1598,6 +1598,29 @@ estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data) case LOOP_EXPR: case PHI_NODE: case WITH_SIZE_EXPR: + case OMP_PARALLEL: + case OMP_FOR: + case OMP_SECTIONS: + case OMP_SINGLE: + case OMP_SECTION: + case OMP_MASTER: + case OMP_ORDERED: + case OMP_CRITICAL: + case OMP_ATOMIC: + case OMP_CLAUSE_PRIVATE: + case OMP_CLAUSE_SHARED: + case OMP_CLAUSE_FIRSTPRIVATE: + case OMP_CLAUSE_LASTPRIVATE: + case OMP_CLAUSE_REDUCTION: + case OMP_CLAUSE_COPYIN: + case OMP_CLAUSE_COPYPRIVATE: + case OMP_CLAUSE_IF: + case OMP_CLAUSE_NUM_THREADS: + case OMP_CLAUSE_SCHEDULE: + case OMP_CLAUSE_NOWAIT: + case OMP_CLAUSE_ORDERED: + case OMP_CLAUSE_DEFAULT: + case OMP_RETURN_EXPR: break; /* We don't account constants for now. Assume that the cost is amortized @@ -2285,7 +2308,22 @@ copy_tree_r (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED) /* Now, restore the chain, if appropriate. That will cause walk_tree to walk into the chain as well. */ - if (code == PARM_DECL || code == TREE_LIST) + if (code == PARM_DECL + || code == TREE_LIST + /* OpenMP clauses are linked through TREE_CHAIN. */ + || code == OMP_CLAUSE_PRIVATE + || code == OMP_CLAUSE_SHARED + || code == OMP_CLAUSE_FIRSTPRIVATE + || code == OMP_CLAUSE_LASTPRIVATE + || code == OMP_CLAUSE_REDUCTION + || code == OMP_CLAUSE_COPYIN + || code == OMP_CLAUSE_COPYPRIVATE + || code == OMP_CLAUSE_IF + || code == OMP_CLAUSE_NUM_THREADS + || code == OMP_CLAUSE_SCHEDULE + || code == OMP_CLAUSE_NOWAIT + || code == OMP_CLAUSE_ORDERED + || code == OMP_CLAUSE_DEFAULT) TREE_CHAIN (*tp) = chain; /* For now, we don't update BLOCKs when we make copies. So, we |