Skip to content
  • Chris Lattner's avatar
    Implement ArgumentPromotion/aggregate-promote.ll · fe6f2e3e
    Chris Lattner authored
    This allows pointers to aggregate objects, whose elements are only read, to
    be promoted and passed in by element instead of by reference.  This can
    enable a LOT of subsequent optimizations in the caller function.
    
    It's worth pointing out that this stuff happens a LOT of C++ programs, because
    objects in templates are generally passed around by reference.  When these
    templates are instantiated on small aggregate or scalar types, however, it is
    more efficient to pass them in by value than by reference.
    
    This transformation triggers most on C++ codes (e.g. 334 times on eon), but
    does happen on C codes as well.  For example, on mesa it triggers 72 times,
    and on gcc it triggers 35 times.  this is amazingly good considering that
    we are using 'basicaa' so far.
    
    llvm-svn: 12202
    fe6f2e3e
Loading