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: My opinions on tree-level and RTL-level optimization


On Mon, 2005-04-18 at 13:34 -0700, Dan Nicolaescu wrote:
> kenner@vlsi1.ultra.nyu.edu (Richard Kenner) writes:
> 
>   >     The correct viewpoint is "we shouldn't remove CSE until every
>   >     *profitable* transformation it makes is subsumed by something else".
>   >
>   > And, as I understand it, the claim is that this is not yet true for the
>   > following of jumps and my question is why.
> 
> One reason could be that there are some aspects of alias analysis that
> are implemented at RTL level, but are not implemented at tree level. 
> Examples: 
>  - accesses to different fields of the same struct
>  - accesses to different elements of the same array
>  - restricted pointers 
> 
> (Dan Berlin is working on the first one (first two?))

First two, but only as the second relates to data dependence.

deref (pointer base) + offset (IE ps->a vs ps->b) is very annoying to
represent at the tree level, because you have to encode the info into a
new name, so that name can be used for SSA purposes.

If we didn't rely on virtual SSA for aliasing, and did what everyone
else does (have an aliasing oracle that tells you whether two things
alias), it would make optimizers x% harder to write (i haven't really
thought deeply about how much harder it really is), but make generating
good alias info for them *much* easier.


--Dan


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