Skip to content
  • Eli Friedman's avatar
    Emit memmove, not memcpy, for structure copies; this is unfortunately · df649f3d
    Eli Friedman authored
    required for correctness in cases of copying a struct to itself or to 
    an overlapping struct (itself for cases like *a = *a, and overlapping 
    is possible with unions).
    
    Hopefully, this won't end up being a perf issue; LLVM *should* be able 
    to optimize memmove to memcpy in a lot of cases, and for small copies 
    the generated code *should* be mostly comparable. (In reality, LLVM 
    is currently horrible at optimizing memmove, but that's a bug, not a 
    fundamental issue.)
    
    gcc currently generates wrong code; that's 
    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667.
    
    llvm-svn: 51566
    df649f3d
Loading