mirror of
https://github.com/RPCS3/llvm.git
synced 2025-04-02 13:21:43 +00:00
employ CallInst::ArgOffset (for now)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107015 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
32621ad9ff
commit
d6bf5cf641
@ -969,7 +969,7 @@ void SROA::isSafeForScalarRepl(Instruction *I, AllocaInst *AI, uint64_t Offset,
|
|||||||
ConstantInt *Length = dyn_cast<ConstantInt>(MI->getLength());
|
ConstantInt *Length = dyn_cast<ConstantInt>(MI->getLength());
|
||||||
if (Length)
|
if (Length)
|
||||||
isSafeMemAccess(AI, Offset, Length->getZExtValue(), 0,
|
isSafeMemAccess(AI, Offset, Length->getZExtValue(), 0,
|
||||||
UI.getOperandNo() == 1, Info);
|
UI.getOperandNo() == CallInst::ArgOffset, Info);
|
||||||
else
|
else
|
||||||
MarkUnsafe(Info);
|
MarkUnsafe(Info);
|
||||||
} else if (LoadInst *LI = dyn_cast<LoadInst>(User)) {
|
} else if (LoadInst *LI = dyn_cast<LoadInst>(User)) {
|
||||||
@ -1799,7 +1799,7 @@ static bool isOnlyCopiedFromConstantGlobal(Value *V, MemTransferInst *&TheCopy,
|
|||||||
if (isOffset) return false;
|
if (isOffset) return false;
|
||||||
|
|
||||||
// If the memintrinsic isn't using the alloca as the dest, reject it.
|
// If the memintrinsic isn't using the alloca as the dest, reject it.
|
||||||
if (UI.getOperandNo() != 1) return false;
|
if (UI.getOperandNo() != CallInst::ArgOffset) return false;
|
||||||
|
|
||||||
// If the source of the memcpy/move is not a constant global, reject it.
|
// If the source of the memcpy/move is not a constant global, reject it.
|
||||||
if (!PointsToConstantGlobal(MI->getSource()))
|
if (!PointsToConstantGlobal(MI->getSource()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user