[LLVMbugs] [Bug 2140] New: missing memcpy simplification: forwarding into a call slot

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Mar 12 00:52:52 PDT 2008


http://llvm.org/bugs/show_bug.cgi?id=2140

           Summary: missing memcpy simplification: forwarding into a call
                    slot
           Product: new-bugs
           Version: unspecified
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: baldrick at free.fr
                CC: llvmbugs at cs.uiuc.edu


The GVN testcase 2008-02-24-MultipleUseofSRet.ll could be further
optimized (this testcase was reduced from some complex arithmetic):
currently it is optimized to:

define fastcc void @badly_optimized() nounwind  {
entry:
        %z = alloca { x86_fp80, x86_fp80 }
        %tmp = alloca { x86_fp80, x86_fp80 }
        call fastcc void @initialize( { x86_fp80, x86_fp80 }* noalias sret 
%tmp )
        %tmp1 = bitcast { x86_fp80, x86_fp80 }* %tmp to i8*
        %z3 = bitcast { x86_fp80, x86_fp80 }* %z to i8*
        call void @llvm.memcpy.i32( i8* %z3, i8* %tmp1, i32 24, i32 8 )
        %tmp5 = call fastcc x86_fp80 @passed_uninitialized( { x86_fp80,
x86_fp80 }* %z )
        ret void
}

The memcpy could be avoided by using %tmp in the call to @passed_uninitialized.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list