diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 21:20:22 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 21:20:22 +0000 |
commit | 119c0edfba7c110c14d291f8f925487815970f20 (patch) | |
tree | 82b2c467a1d4367d5d4ae4976b6e526186804570 /gcc/graphite-poly.h | |
parent | 63835205c45c386dfbf561f0b5fd3599e5a46d8b (diff) | |
download | gcc-119c0edfba7c110c14d291f8f925487815970f20.tar.gz |
Fix lst_update_scattering.
2010-09-09 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.h (lst_update_scattering_seq): Removed.
(lst_update_scattering): Correctly handle outermost loop dewey
renumbering.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164801 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-poly.h')
-rw-r--r-- | gcc/graphite-poly.h | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h index 5f536a8529a..e93c2ad31dc 100644 --- a/gcc/graphite-poly.h +++ b/gcc/graphite-poly.h @@ -1120,24 +1120,6 @@ lst_update_scattering_under (lst_p lst, int level, int dewey) pbb_update_scattering (LST_PBB (lst), level, dewey); } -/* Updates the scattering of all the PBBs under LST and in sequence - with LST. */ - -static inline void -lst_update_scattering_seq (lst_p lst) -{ - int i; - lst_p l; - lst_p father = LST_LOOP_FATHER (lst); - int dewey = lst_dewey_number (lst); - int level = lst_depth (lst); - - gcc_assert (lst && father && dewey >= 0 && level >= 0); - - for (i = dewey; VEC_iterate (lst_p, LST_SEQ (father), i, l); i++) - lst_update_scattering_under (l, level, i); -} - /* Updates the all the scattering levels of all the PBBs under LST. */ @@ -1147,14 +1129,24 @@ lst_update_scattering (lst_p lst) int i; lst_p l; - if (!lst || !LST_LOOP_P (lst)) + if (!lst) return; if (LST_LOOP_FATHER (lst)) - lst_update_scattering_seq (lst); + { + lst_p father = LST_LOOP_FATHER (lst); + int dewey = lst_dewey_number (lst); + int level = lst_depth (lst); - for (i = 0; VEC_iterate (lst_p, LST_SEQ (lst), i, l); i++) - lst_update_scattering (l); + gcc_assert (lst && father && dewey >= 0 && level >= 0); + + for (i = dewey; VEC_iterate (lst_p, LST_SEQ (father), i, l); i++) + lst_update_scattering_under (l, level, i); + } + + if (LST_LOOP_P (lst)) + for (i = 0; VEC_iterate (lst_p, LST_SEQ (lst), i, l); i++) + lst_update_scattering (l); } /* Inserts LST1 before LST2 if BEFORE is true; inserts LST1 after LST2 |