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] |
On 09/06/15 00:05, Tom de Vries wrote:
On 08/06/15 17:55, Thomas Schwinge wrote:Hi Tom! On Mon, 8 Jun 2015 12:43:01 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:There are two problems in try_transform_to_exit_first_loop_alt: 1. In case the latch is not a singleton bb, the function should return false rather than true. 2. The check for singleton bb should ignore debug-insns. Attached patch fixes these problems.Fix try_transform_to_exit_first_loop_altPR tree-optimization/66442 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function. * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false if the loop latch is not a singleton. Use gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.Per my testing, the backport of this patch that you committed to gomp-4_0-branch, r224219, introduces a number of regressions in your OpenACC kernels test cases, specifically the Âscan-tree-dump-times parloops_oacc_kernels "(?n)pragma omp target oacc_parallel.*num_gangs\\(32\\)" 1Â tests. Would you please have a look?Hi Thomas, I seem to have committed (to both trunk and gomp-4_0-branch) an older version of the patch, which contained an incorrect version of gimple_seq_nondebug_singleton_p. I'll correct the mistake tomorrow morning.
Committed attached patch to trunk and propagated to gomp-4_0-branch.Committed as obvious, since it changes gimple_seq_nondebug_singleton_p into the tested and approved version.
Thanks, - Tom
Fix gimple_seq_nondebug_singleton_p 2015-06-09 Tom de Vries <tom@codesourcery.com> * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't always return false. --- gcc/gimple-iterator.h | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/gcc/gimple-iterator.h b/gcc/gimple-iterator.h index d08245e..76fa456 100644 --- a/gcc/gimple-iterator.h +++ b/gcc/gimple-iterator.h @@ -351,33 +351,27 @@ static inline bool gimple_seq_nondebug_singleton_p (gimple_seq seq) { gimple_stmt_iterator gsi; + + /* Find a nondebug gimple. */ gsi.ptr = gimple_seq_first (seq); gsi.seq = &seq; gsi.bb = NULL; - - /* Not a singleton if the sequence is empty. */ - if (gsi_end_p (gsi)) - return false; - - /* Find a nondebug gimple. */ while (!gsi_end_p (gsi) && is_gimple_debug (gsi_stmt (gsi))) gsi_next (&gsi); - /* Not a nondebug singleton if there's no nondebug gimple. */ - if (is_gimple_debug (gsi_stmt (gsi))) + /* No nondebug gimple found, not a singleton. */ + if (gsi_end_p (gsi)) return false; - /* Find the next nondebug gimple. */ + /* Find a next nondebug gimple. */ + gsi_next (&gsi); while (!gsi_end_p (gsi) && is_gimple_debug (gsi_stmt (gsi))) gsi_next (&gsi); - /* If there's a next nondebug gimple, it's not a nondebug singleton. */ - if (!gsi_end_p (gsi)) - return false; - - return true; + /* Only a singleton if there's no next nondebug gimple. */ + return gsi_end_p (gsi); } #endif /* GCC_GIMPLE_ITERATOR_H */ -- 1.9.1
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |