This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gomp4] dominance info after predicate_omp_regions


On 21/05/15 13:42, bernds@gcc.gnu.org wrote:
Author: bernds
Date: Thu May 21 11:42:14 2015
New Revision: 223478

URL: https://gcc.gnu.org/viewcvs?rev=223478&root=gcc&view=rev
Log:
	* omp-low.c (struct omp_region): Add a gwv_this field.
	(bb_region_map): New variable.
	(find_omp_for_region_data, find_omp_target_region_data): New static
	functions.
	(build_omp_regions_1): Call them.  Build the bb_region_map.
	(enclosing_target_region, requires_vector_predicate,
	generate_vector_broadcast, predicate_bb, find_predicatable_bbs,
	predicate_omp_regions): New static functions.
	(execute_expand_omp): Allocate and free bb_region_map.

Modified:
     branches/gomp-4_0-branch/gcc/ChangeLog.gomp
     branches/gomp-4_0-branch/gcc/omp-low.c


Hi Bernd,

I ran into trouble with invalid dominance info, AFAIU because predicate_omp_regions invalidates the dominance info. For now I'm using this workaround:
...
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index f7e13d3..5601cff 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -11268,6 +11268,8 @@ execute_expand_omp (void)
        }

       predicate_omp_regions (ENTRY_BLOCK_PTR_FOR_FN (cfun));
+      free_dominance_info (CDI_DOMINATORS);
+      calculate_dominance_info (CDI_DOMINATORS);

       remove_exit_barriers (root_omp_region);

...

Thanks,
- Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]