Skip to content
  • 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
Loading