[PATCH] Enable frontend-passes.c optimizations even in omp regions etc.

Jakub Jelinek jakub@redhat.com
Wed Sep 8 17:41:00 GMT 2010


Hi!

optimize_code_node doesn't dive into OpenMP etc. regions.
The following patch fixes it by walking ->block in the default case.

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

2010-09-08  Jakub Jelinek  <jakub@redhat.com>

	* frontend-passes.c (optimize_code_node): Walk block chain by default.

--- gcc/fortran/frontend-passes.c.jj	2010-09-06 08:41:42.000000000 +0200
+++ gcc/fortran/frontend-passes.c	2010-09-07 22:06:52.000000000 +0200
@@ -225,8 +225,12 @@ optimize_code_node (gfc_code *c)
     case EXEC_OMP_TASK:
     case EXEC_OMP_TASKWAIT:
     case EXEC_OMP_WORKSHARE:
+    case EXEC_OMP_END_NOWAIT:
+    case EXEC_OMP_END_SINGLE:
     case EXEC_DEALLOCATE:
-      
+    case EXEC_DT_END:
+      for (d = c->block; d; d = d->block)
+	optimize_code (d->next);
       break;
 
     default:

	Jakub



More information about the Gcc-patches mailing list