public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] testsuite: Compile-only gcc.dg/tree-ssa/pr100359.c if ! natural_alignment_32
@ 2023-03-21 15:38 Hans-Peter Nilsson
  2023-03-21 16:47 ` Richard Biener
  0 siblings, 1 reply; 2+ messages in thread
From: Hans-Peter Nilsson @ 2023-03-21 15:38 UTC (permalink / raw)
  To: gcc-patches; +Cc: zhendong.su, rguenther

(CC to respectively author and committer of pr100359.c.)

Tested cris-elf and native x86_64-linux: the two
scan-tree-dumps pass and x86_64-linux still links.  Ok to
commit?

-- >8 --
The test gcc.dg/tree-ssa/pr100359.c fails the "test for
excess errors" for at least m68k-linux, pru-elf, and
cris-elf according to posts on gcc-testresults.  For
cris-elf, the "excess errors" is a failure to link; an
undefined reference to foo, because the code has a call to
an extern function foo, which is not optimized away, and
which is not defined.  I guess it's the same for those other
targets.

From comparative gdb sessions for native x86_64-linux and
cris-elf, I see tree-ssa-sccvn.cc:vn_reference_lookup_3
(called from the "pre" pass) requires int-size-alignment for
a target to see through the "int *" dereference, that the
expression is constant false and subsequently optimize away
the call to foo.  The conclusion is with substantially less
effort available from comments in PR91419.

The point of the test seems only incidental to
optimizing-out the call to foo, judging from the comments in
PR100359, so an alternative is compile it (not link it) for
all targets.  However, I chose to not change the nature of
the test where it passes.

	* gcc.dg/tree-ssa/pr100359.c: Compile-only for ! natural_alignment_32.
---
 gcc/testsuite/gcc.dg/tree-ssa/pr100359.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c b/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
index 29243522caaf..236dbef41c4e 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
@@ -1,4 +1,5 @@
-/* { dg-do link } */
+/* { dg-do link { target natural_alignment_32 } } */
+/* { dg-do compile { target { ! natural_alignment_32 } } } */
 /* { dg-options "-O3 -fdump-tree-cunrolli-optimized" } */
 
 extern void foo(void);
-- 
2.30.2


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

* Re: [PATCH] testsuite: Compile-only gcc.dg/tree-ssa/pr100359.c if ! natural_alignment_32
  2023-03-21 15:38 [PATCH] testsuite: Compile-only gcc.dg/tree-ssa/pr100359.c if ! natural_alignment_32 Hans-Peter Nilsson
@ 2023-03-21 16:47 ` Richard Biener
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Biener @ 2023-03-21 16:47 UTC (permalink / raw)
  To: Hans-Peter Nilsson via Gcc-patches; +Cc: zhendong.su



> Am 21.03.2023 um 16:38 schrieb Hans-Peter Nilsson via Gcc-patches <gcc-patches@gcc.gnu.org>:
> 
> (CC to respectively author and committer of pr100359.c.)
> 
> Tested cris-elf and native x86_64-linux: the two
> scan-tree-dumps pass and x86_64-linux still links.  Ok to
> commit?

Ok

Richard 

> -- >8 --
> The test gcc.dg/tree-ssa/pr100359.c fails the "test for
> excess errors" for at least m68k-linux, pru-elf, and
> cris-elf according to posts on gcc-testresults.  For
> cris-elf, the "excess errors" is a failure to link; an
> undefined reference to foo, because the code has a call to
> an extern function foo, which is not optimized away, and
> which is not defined.  I guess it's the same for those other
> targets.
> 
> From comparative gdb sessions for native x86_64-linux and
> cris-elf, I see tree-ssa-sccvn.cc:vn_reference_lookup_3
> (called from the "pre" pass) requires int-size-alignment for
> a target to see through the "int *" dereference, that the
> expression is constant false and subsequently optimize away
> the call to foo.  The conclusion is with substantially less
> effort available from comments in PR91419.
> 
> The point of the test seems only incidental to
> optimizing-out the call to foo, judging from the comments in
> PR100359, so an alternative is compile it (not link it) for
> all targets.  However, I chose to not change the nature of
> the test where it passes.
> 
>    * gcc.dg/tree-ssa/pr100359.c: Compile-only for ! natural_alignment_32.
> ---
> gcc/testsuite/gcc.dg/tree-ssa/pr100359.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c b/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
> index 29243522caaf..236dbef41c4e 100644
> --- a/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
> +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
> @@ -1,4 +1,5 @@
> -/* { dg-do link } */
> +/* { dg-do link { target natural_alignment_32 } } */
> +/* { dg-do compile { target { ! natural_alignment_32 } } } */
> /* { dg-options "-O3 -fdump-tree-cunrolli-optimized" } */
> 
> extern void foo(void);
> -- 
> 2.30.2
> 

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

end of thread, other threads:[~2023-03-21 16:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-21 15:38 [PATCH] testsuite: Compile-only gcc.dg/tree-ssa/pr100359.c if ! natural_alignment_32 Hans-Peter Nilsson
2023-03-21 16:47 ` Richard Biener

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).