public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] [PR102501] Adjust jump threading testcases for ppc64* and others.
@ 2021-09-28 16:09 Aldy Hernandez
  2021-09-28 16:36 ` Jeff Law
  0 siblings, 1 reply; 2+ messages in thread
From: Aldy Hernandez @ 2021-09-28 16:09 UTC (permalink / raw)
  To: Jeff Law; +Cc: Andrew MacLeod, GCC patches, Aldy Hernandez

I really don't know what to do here.  This is a bit of whack-o-mole.
The IL is sufficiently different for various architectures that any
tweak can cause the number of jump threads to vary.

For the pr7745-2.c testcase, we have less threading candidates because 2
of them now cross loop boundaries.  Interestingly, this test matches
"Jumps threaded", not threads registered, so the block copier can
drop threads at copying time adding further confusion.

For example, we can register N threads, but the old copier can cancel
N-M threads while updating the CFG for a variety of different reasons
(removed edges, threading through loop exits, etc).  This makes the
"Registering jump threads" not to match the total number of threads this
test checks for with "Jumps threaded".

The pr66752-3.c test OTOH, is just a matter of thread4 eliminating the
"if".  I had erroneously thought it would always be eliminated by
thread3, but we really don't care where it gets cleaned up.  All we know
is that DCE can't depend on the early threaders doing this work, because
it may cross loop boundaries.  I've chosen thread4 arbitrarily, but we
could just as easily pick the ".optimized" dump.

Sorry, I'm really at my wits end here.  I don't see any clean path
forward, except rewrite these tests as gimple IL.  They're close to useless
as they sit.

OK?

gcc/testsuite/ChangeLog:

	PR testsuite/102501
	* gcc.dg/tree-ssa/pr66752-3.c: Adjust.
	* gcc.dg/tree-ssa/pr77445-2.c: Adjust.
---
 gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c | 4 ++--
 gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c b/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c
index 922a331b217..ba7025ae33b 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-thread1-details -fdump-tree-thread3" } */
+/* { dg-options "-O2 -fdump-tree-thread1-details -fdump-tree-thread4" } */
 
 extern int status, pt;
 extern int count;
@@ -43,4 +43,4 @@ foo (int N, int c, int b, int *a)
    run after loop optimizations , can successfully eliminate the
    references to FLAG.  Verify that ther are no references by the late
    threading passes.  */
-/* { dg-final { scan-tree-dump-not "if .flag" "thread3"} } */
+/* { dg-final { scan-tree-dump-not "if .flag" "thread4"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c
index 01a0f1f197d..18f7aab2be7 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c
@@ -123,7 +123,7 @@ enum STATES FMS( u8 **in , u32 *transitions) {
    aarch64 has the highest CASE_VALUES_THRESHOLD in GCC.  It's high enough
    to change decisions in switch expansion which in turn can expose new
    jump threading opportunities.  Skip the later tests on aarch64.  */
-/* { dg-final { scan-tree-dump "Jumps threaded: 9" "thread1" } } */
+/* { dg-final { scan-tree-dump "Jumps threaded: \[7-9\]" "thread1" } } */
 /* { dg-final { scan-tree-dump-times "Invalid sum" 1 "thread1" } } */
 /* { dg-final { scan-tree-dump-not "optimizing for size" "thread1" } } */
 /* { dg-final { scan-tree-dump-not "optimizing for size" "thread2" } } */
-- 
2.31.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] [PR102501] Adjust jump threading testcases for ppc64* and others.
  2021-09-28 16:09 [PATCH] [PR102501] Adjust jump threading testcases for ppc64* and others Aldy Hernandez
@ 2021-09-28 16:36 ` Jeff Law
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Law @ 2021-09-28 16:36 UTC (permalink / raw)
  To: Aldy Hernandez; +Cc: Andrew MacLeod, GCC patches



On 9/28/2021 10:09 AM, Aldy Hernandez wrote:
> I really don't know what to do here.  This is a bit of whack-o-mole.
> The IL is sufficiently different for various architectures that any
> tweak can cause the number of jump threads to vary.
>
> For the pr7745-2.c testcase, we have less threading candidates because 2
> of them now cross loop boundaries.  Interestingly, this test matches
> "Jumps threaded", not threads registered, so the block copier can
> drop threads at copying time adding further confusion.
>
> For example, we can register N threads, but the old copier can cancel
> N-M threads while updating the CFG for a variety of different reasons
> (removed edges, threading through loop exits, etc).  This makes the
> "Registering jump threads" not to match the total number of threads this
> test checks for with "Jumps threaded".
>
> The pr66752-3.c test OTOH, is just a matter of thread4 eliminating the
> "if".  I had erroneously thought it would always be eliminated by
> thread3, but we really don't care where it gets cleaned up.  All we know
> is that DCE can't depend on the early threaders doing this work, because
> it may cross loop boundaries.  I've chosen thread4 arbitrarily, but we
> could just as easily pick the ".optimized" dump.
>
> Sorry, I'm really at my wits end here.  I don't see any clean path
> forward, except rewrite these tests as gimple IL.  They're close to useless
> as they sit.
>
> OK?
>
> gcc/testsuite/ChangeLog:
>
> 	PR testsuite/102501
> 	* gcc.dg/tree-ssa/pr66752-3.c: Adjust.
> 	* gcc.dg/tree-ssa/pr77445-2.c: Adjust.
Note these were two of the consistent failures on other targets as well.
Jeff


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-09-28 16:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-28 16:09 [PATCH] [PR102501] Adjust jump threading testcases for ppc64* and others Aldy Hernandez
2021-09-28 16:36 ` Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).