mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 21:20:37 +00:00
Revert the part of 64623 that attempted to align the source in a
memcpy to match the alignment of the destination. It isn't necessary for making loads and stores handled like the SSE loadu/storeu intrinsics, and it was causing a performance regression in MultiSource/Applications/JM/lencod. The problem appears to have been a memcpy that copies from some highly aligned array into an alloca; the alloca was then being assigned a large alignment, which required codegen to perform dynamic stack-pointer re-alignment, which forced the enclosing function to have a frame pointer, which led to increased spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65289 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a04af4380d
commit
bc989d462d
@ -9286,7 +9286,7 @@ unsigned InstCombiner::GetOrEnforceKnownAlignment(Value *V,
|
||||
|
||||
Instruction *InstCombiner::SimplifyMemTransfer(MemIntrinsic *MI) {
|
||||
unsigned DstAlign = GetOrEnforceKnownAlignment(MI->getOperand(1));
|
||||
unsigned SrcAlign = GetOrEnforceKnownAlignment(MI->getOperand(2), DstAlign);
|
||||
unsigned SrcAlign = GetOrEnforceKnownAlignment(MI->getOperand(2));
|
||||
unsigned MinAlign = std::min(DstAlign, SrcAlign);
|
||||
unsigned CopyAlign = MI->getAlignment()->getZExtValue();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user