[llvm-commits] [llvm] r144239 - in /llvm/trunk: lib/Transforms/Scalar/DeadStoreElimination.cpp test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll

Joerg Sonnenberger joerg at britannica.bec.de
Mon Nov 28 11:39:32 PST 2011


On Wed, Nov 09, 2011 at 11:07:35PM -0000, Pete Cooper wrote:
> Author: pete
> Date: Wed Nov  9 17:07:35 2011
> New Revision: 144239
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=144239&view=rev
> Log:
> DeadStoreElimination can now trim the size of a store if the end of the store is dead.

This doesn't work correctly. Attached is a minimised test case.
With this change, the memcpy is effectively dropped, even if it is not a
dead store.

Joerg
-------------- next part --------------
typedef unsigned long int __uint64_t;

struct trapframe {
    __uint64_t tf_rdi;
     __uint64_t tf_trapno;
};

void
cpu_lwp_fork(struct trapframe *md_regs, __uint64_t pcb_rsp0)
{
 struct trapframe *tf;

 tf = (struct trapframe *)pcb_rsp0 -1;
 __builtin_memcpy(tf, md_regs, sizeof(struct trapframe));
 tf->tf_trapno = 3;
}


More information about the llvm-commits mailing list