mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-26 07:29:55 +00:00
use AA::isNoAlias instead of open coding it. Remove an extraneous noalias check:
there is no need to check to see if the source and dest of a memcpy are noalias, behavior is undefined if not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119691 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2e29ebd9e8
commit
245b7f6ec2
@ -689,22 +689,18 @@ bool MemCpyOpt::processMemCpyMemCpyDependence(MemCpyInst *M, MemCpyInst *MDep,
|
||||
return false;
|
||||
|
||||
// Finally, we have to make sure that the dest of the second does not
|
||||
// alias the source of the first
|
||||
// alias the source of the first.
|
||||
AliasAnalysis &AA = getAnalysis<AliasAnalysis>();
|
||||
if (AA.alias(M->getRawDest(), MSize, MDep->getRawSource(), DepSize) !=
|
||||
AliasAnalysis::NoAlias)
|
||||
return false;
|
||||
else if (AA.alias(M->getRawDest(), MSize, M->getRawSource(), MSize) !=
|
||||
AliasAnalysis::NoAlias)
|
||||
return false;
|
||||
else if (AA.alias(MDep->getRawDest(), DepSize, MDep->getRawSource(), DepSize)
|
||||
!= AliasAnalysis::NoAlias)
|
||||
if (!AA.isNoAlias(M->getRawDest(), MSize, MDep->getRawSource(), DepSize) ||
|
||||
!AA.isNoAlias(M->getRawDest(), MSize, M->getRawSource(), MSize))
|
||||
return false;
|
||||
|
||||
// If all checks passed, then we can transform these memcpy's
|
||||
const Type *ArgTys[3] = { M->getRawDest()->getType(),
|
||||
const Type *ArgTys[3] = {
|
||||
M->getRawDest()->getType(),
|
||||
MDep->getRawSource()->getType(),
|
||||
M->getLength()->getType() };
|
||||
M->getLength()->getType()
|
||||
};
|
||||
Function *MemCpyFun =
|
||||
Intrinsic::getDeclaration(M->getParent()->getParent()->getParent(),
|
||||
M->getIntrinsicID(), ArgTys, 3);
|
||||
|
Loading…
Reference in New Issue
Block a user