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: [tree-ssa] copy propagation and the abstraction penalty


On Wed, 2003-05-14 at 18:44, Joe Buck wrote:

> If we could do this alone, we would greatly improve C++ performance, especially
> on things like the Boost graph library.  It seems that we have most of what we
> need in place, right?
>
There's a few bits still missing, but we should be getting there.  In
this particular testcase I see:

      * Structures.  We only build enough SSA links to prove liveness. 
        Two alternatives to dealing with this is using ESSA from the
        SSAPRE engine and/or rely on a scalarization pass.

      * Aliasing.  Our default type-based aliasing mechanism gets all
        tangled up (it's really naive):

        Alias information for complex addone(const complex&): 1 sets
        
        Alias set #0:
          Tag: *this, may aliases: *this, may alias global memory, call clobbered
          Aliases objects: { <UV2150> *this <UV2770> *arg *b *this }
        
	
      * The long term plan is to use PTA, which disambiguates this
        program just fine.  PTA still needs some work before we can
        enable it by default.  I'm also wondering if we could change the
        may-alias between this and UV2150 to a must-alias, which would
        completely free this program from aliasing problems:

        Alias information for complex addone(const complex&): 1 sets
        
        Alias set #0:
          Tag: *this, may aliases: *this, .GLOBAL_VAR, call clobbered
          Aliases objects: { <UV2150> *this }
        

Diego.


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