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

Reply via email to