aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-low.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-04-26 10:20:57 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2006-04-26 10:20:57 +0200
commit21a66e91d04c775dc4a022fb950c4163c593c090 (patch)
treefec7ee7b475d5fccd6db80f93052baa34e06da9e /gcc/omp-low.c
parent887dc802b3408d0c815ff2aaecd791fa2fd90725 (diff)
downloadgcc-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.c10
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)
{