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

Re: must_alias question


> On Thu, 2003-11-20 at 16:44, Jan Hubicka wrote:
> 
> > The bug is probably reason for the FIXME disabling the function for
> > pointer types BTW :)
> >
> Bonus!
> 
> 
> >  I will test all the changes I cumulated for mustalias pass.
> > I think we can kill ADDRESSOF beast now that will make things a lot
> > easier.
> > 
> OK.  I'm very interested in these changes.  We need to be able to remove
> the FIXME in promote_var safely.  Otherwise, we miss several
> scalarizations that are important to finish fixing PR 12747.
I've tested it on i386-linux now with SRA disabled (as SRA still makes
bootstrap failing on that machine).  In conjunction with the
tree-mustalias patch this is enought to remove all the FIXMES (two in
tree-mustalias and other in my tree-dfa patch).
I will do more proper testing once we stabilize the other bugs, but you
may ti find this usefull if working on improving SRA.

Honza

2003-11-21  Jan Hubicka  <jh@suse.cz>
	* stmt.c (expand_decl):  Do not crash when referencing arrays
	with no TREE_ADDRESSABLE bit set.
Index: stmt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stmt.c,v
retrieving revision 1.267.2.40
diff -c -3 -p -r1.267.2.40 stmt.c
*** stmt.c	13 Nov 2003 02:37:59 -0000	1.267.2.40
--- stmt.c	21 Nov 2003 01:11:55 -0000
*************** expand_decl (tree decl)
*** 3933,3940 ****
  
        maybe_set_unchanging (DECL_RTL (decl), decl);
  
!       /* If something wants our address, try to use ADDRESSOF.  */
!       if (TREE_ADDRESSABLE (decl))
  	put_var_into_stack (decl, /*rescan=*/false);
      }
  
--- 3933,3943 ----
  
        maybe_set_unchanging (DECL_RTL (decl), decl);
  
!       /* If something wants our address, try to use ADDRESSOF. 
!          Always construct address for aggregates, as we may need
! 	 referencing field addressed by variable we can't do inside
! 	 register.  */
!       if (TREE_ADDRESSABLE (decl) || AGGREGATE_TYPE_P (type))
  	put_var_into_stack (decl, /*rescan=*/false);
      }
  


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