Skip to content
Snippets Groups Projects
  1. Jun 18, 2011
  2. Jun 17, 2011
  3. May 23, 2011
    • Chris Lattner's avatar
      Teach valuetracking that byval arguments with a specified alignment are · 83791ced
      Chris Lattner authored
      aligned.
      
      Teach memcpyopt to not give up all hope when confonted with an underaligned
      memcpy feeding an overaligned byval.  If the *source* of the memcpy can be
      determined to be adequeately aligned, or if it can be forced to be, we can
      eliminate the memcpy.
      
      This addresses PR9794.  We now compile the example into:
      
      define i32 @f(%struct.p* nocapture byval align 8 %q) nounwind ssp {
      entry:
        %call = call i32 @g(%struct.p* byval align 8 %q) nounwind
        ret i32 %call
      }
      
      in both x86-64 and x86-32 mode.  We still don't get a tailcall though,
      because tailcalls apparently can't handle byval.
      
      llvm-svn: 131884
      83791ced
  4. Dec 09, 2010
  5. Dec 01, 2010
  6. Nov 21, 2010
    • Chris Lattner's avatar
      Implement PR8644: forwarding a memcpy value to a byval, · 58f9f587
      Chris Lattner authored
      allowing the memcpy to be eliminated.
      
      Unfortunately, the requirements on byval's without explicit 
      alignment are really weak and impossible to predict in the 
      mid-level optimizer, so this doesn't kick in much with current
      frontends.  The fix is to change clang to set alignment on all
      byval arguments.
      
      llvm-svn: 119916
      58f9f587
  7. Nov 18, 2010
  8. Oct 18, 2010
  9. Sep 11, 2009
  10. Sep 09, 2009
  11. Sep 08, 2009
  12. Jun 05, 2009
  13. Apr 09, 2008
  14. Feb 25, 2008
  15. Feb 12, 2008
  16. Feb 06, 2008
  17. Feb 04, 2008
Loading