diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-04-26 10:20:57 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-04-26 10:20:57 +0200 |
commit | 21a66e91d04c775dc4a022fb950c4163c593c090 (patch) | |
tree | fec7ee7b475d5fccd6db80f93052baa34e06da9e /gcc/omp-low.c | |
parent | 887dc802b3408d0c815ff2aaecd791fa2fd90725 (diff) | |
download | gcc-21a66e91d04c775dc4a022fb950c4163c593c090.zip gcc-21a66e91d04c775dc4a022fb950c4163c593c090.tar.gz gcc-21a66e91d04c775dc4a022fb950c4163c593c090.tar.bz2 |
re PR middle-end/25989 (gomp ICE with -O2 and schedule(guided))
PR middle-end/25989
* tree-flow.h (struct omp_region): Add sched_kind.
* omp-low.c (expand_parallel_call): Use region->inner->sched_kind
instead of extracting omp for data.
(expand_omp_for): Save extracted sched_kind.
From-SVN: r113268
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r-- | gcc/omp-low.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c index bcc3650..519f48d 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -2032,13 +2032,8 @@ expand_parallel_call (struct omp_region *region, basic_block bb, switch (region->inner->type) { case OMP_FOR: - { - tree stmt = last_stmt (region->inner->entry); - struct omp_for_data fd; - extract_omp_for_data (stmt, &fd); - start_ix = BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START - + fd.sched_kind; - } + start_ix = BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START + + region->inner->sched_kind; break; case OMP_SECTIONS: start_ix = BUILT_IN_GOMP_PARALLEL_SECTIONS_START; @@ -2944,6 +2939,7 @@ expand_omp_for (struct omp_region *region) push_gimplify_context (); extract_omp_for_data (last_stmt (region->entry), &fd); + region->sched_kind = fd.sched_kind; if (fd.sched_kind == OMP_CLAUSE_SCHEDULE_STATIC && !fd.have_ordered) { |