This is the mail archive of the gcc-bugs@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]

Re: FAIL: gcc.c-torture/execute/950628-1.c execution, -O1


> It can be seen for example that the MEM in insn 46 is referenced latter
> in insn 61.  Possibly, the MEM is not invalidated on the pbi->mem_set_list
> because the reference is indirect via register SI 113.

> (insn 35 34 46 (set (reg:SI 107)
>         (zero_extend:SI (subreg:HI (reg:SI 29 %r29) 0))) 133 {*pa.md:3362} (nil)
>     (nil))
> 
> (insn 46 35 47 (set (mem/s/u:HI (plus:SI (reg/f:SI 3 %r3)
>                 (const_int 20 [0x14])) 0)
>         (subreg:HI (reg:SI 107) 0)) 91 {*pa.md:2554} (nil)
>     (nil))

> (insn 59 58 61 (set (reg/f:SI 113)
>         (plus:SI (reg/f:SI 3 %r3)
>             (const_int 20 [0x14]))) 169 {addsi3} (nil)
>     (nil))
> 
> (insn 61 59 62 (set (reg:HI 117)
>         (mem/s/u:HI (reg/f:SI 113) 0)) 91 {*pa.md:2554} (nil)
>     (nil))

The patch (hack) below is a temporary fix to the test failure.  It prevents
the deletion of the SET at insn 46 when the indirect reference in 59-61
is detected.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

2001-01-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* flow.c (init_propagate_block_info): Disable scan for stores to the
	frame in blocks with no successors.

--- flow.c.orig	Wed Jan 17 01:46:51 2001
+++ flow.c	Mon Jan 22 14:27:34 2001
@@ -4083,7 +4083,9 @@
      used later in the block are dead.  So make a pass over the block
      recording any such that are made and show them dead at the end.  We do
      a very conservative and simple job here.  */
-  if (optimize
+  /* FIXME: This optimisation is disabled because the check for stores
+     used later doesn't detect some indirect cases.  */
+  if (0 && optimize
       && ! (TREE_CODE (TREE_TYPE (current_function_decl)) == FUNCTION_TYPE
 	    && (TYPE_RETURNS_STACK_DEPRESSED
 		(TREE_TYPE (current_function_decl))))

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]