diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-12-04 21:36:55 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-12-04 21:36:55 +0000 |
commit | 6cfed2d02add41fcefaa2b3711858e6ff81b09d5 (patch) | |
tree | d513c64fdac4af127f0b0f73928de02267d28fe3 /gcc/graphite.h | |
parent | da54329a074eb7830ec8a5e5966265bfd9912bef (diff) | |
download | gcc-6cfed2d02add41fcefaa2b3711858e6ff81b09d5.tar.gz |
fix PR68693: Check for loop structure when extending the SCoP
The check for dominance while extending the scop assumed that
multiple successors meant a loop which is not true in case of
conditionals around the loop.
Improved pretty printers for better debugging.
PR tree-optimization/68693
* graphite-scop-detection.c (dot_all_sese): New
(dot_all_scops_1): Renamed to dot_all_sese.
(dot_all_scops): Removed.
(dot_sese): New.
(dot_cfg): New.
(scop_detection::get_nearest_dom_with_single_entry): Check that preds are from different loop levels.
(scop_detection::get_nearest_pdom_with_single_exit): Check that succs are from different loop levels.
(scop_detection::print_sese): Inlined.
(scop_detection::print_edge): New.
(scop_detection::merge_sese): Added dumps.
* graphite.h: Add declarations.
gcc/testsuite/ChangeLog:
* gfortran.dg/graphite/pr68693.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231309 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite.h')
-rw-r--r-- | gcc/graphite.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/graphite.h b/gcc/graphite.h index 30272bbc46c..c7589baef4f 100644 --- a/gcc/graphite.h +++ b/gcc/graphite.h @@ -465,7 +465,7 @@ extern bool build_poly_scop (scop_p); extern bool graphite_regenerate_ast_isl (scop_p); extern void build_scops (vec<scop_p> *); -extern void dot_all_scops (vec<scop_p>); -extern void dot_scop (scop_p); - +extern void dot_all_sese (FILE *, vec<sese_l> &); +extern void dot_sese (sese_l &); +extern void dot_cfg (); #endif |