mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
[C++] Use 'nullptr'. Transforms edition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207196 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -50,7 +50,7 @@ static int64_t GetOffsetFromIndex(const GEPOperator *GEP, unsigned Idx,
|
||||
int64_t Offset = 0;
|
||||
for (unsigned i = Idx, e = GEP->getNumOperands(); i != e; ++i, ++GTI) {
|
||||
ConstantInt *OpC = dyn_cast<ConstantInt>(GEP->getOperand(i));
|
||||
if (OpC == 0)
|
||||
if (!OpC)
|
||||
return VariableIdxFound = true;
|
||||
if (OpC->isZero()) continue; // No offset.
|
||||
|
||||
@@ -90,12 +90,12 @@ static bool IsPointerOffset(Value *Ptr1, Value *Ptr2, int64_t &Offset,
|
||||
|
||||
// If one pointer is a GEP and the other isn't, then see if the GEP is a
|
||||
// constant offset from the base, as in "P" and "gep P, 1".
|
||||
if (GEP1 && GEP2 == 0 && GEP1->getOperand(0)->stripPointerCasts() == Ptr2) {
|
||||
if (GEP1 && !GEP2 && GEP1->getOperand(0)->stripPointerCasts() == Ptr2) {
|
||||
Offset = -GetOffsetFromIndex(GEP1, 1, VariableIdxFound, TD);
|
||||
return !VariableIdxFound;
|
||||
}
|
||||
|
||||
if (GEP2 && GEP1 == 0 && GEP2->getOperand(0)->stripPointerCasts() == Ptr1) {
|
||||
if (GEP2 && !GEP1 && GEP2->getOperand(0)->stripPointerCasts() == Ptr1) {
|
||||
Offset = GetOffsetFromIndex(GEP2, 1, VariableIdxFound, TD);
|
||||
return !VariableIdxFound;
|
||||
}
|
||||
@@ -318,9 +318,9 @@ namespace {
|
||||
static char ID; // Pass identification, replacement for typeid
|
||||
MemCpyOpt() : FunctionPass(ID) {
|
||||
initializeMemCpyOptPass(*PassRegistry::getPassRegistry());
|
||||
MD = 0;
|
||||
TLI = 0;
|
||||
DL = 0;
|
||||
MD = nullptr;
|
||||
TLI = nullptr;
|
||||
DL = nullptr;
|
||||
}
|
||||
|
||||
bool runOnFunction(Function &F) override;
|
||||
@@ -374,7 +374,7 @@ INITIALIZE_PASS_END(MemCpyOpt, "memcpyopt", "MemCpy Optimization",
|
||||
/// attempts to merge them together into a memcpy/memset.
|
||||
Instruction *MemCpyOpt::tryMergingIntoMemset(Instruction *StartInst,
|
||||
Value *StartPtr, Value *ByteVal) {
|
||||
if (DL == 0) return 0;
|
||||
if (!DL) return nullptr;
|
||||
|
||||
// Okay, so we now have a single store that can be splatable. Scan to find
|
||||
// all subsequent stores of the same value to offset from the same pointer.
|
||||
@@ -427,7 +427,7 @@ Instruction *MemCpyOpt::tryMergingIntoMemset(Instruction *StartInst,
|
||||
// If we have no ranges, then we just had a single store with nothing that
|
||||
// could be merged in. This is a very common case of course.
|
||||
if (Ranges.empty())
|
||||
return 0;
|
||||
return nullptr;
|
||||
|
||||
// If we had at least one store that could be merged in, add the starting
|
||||
// store as well. We try to avoid this unless there is at least something
|
||||
@@ -441,7 +441,7 @@ Instruction *MemCpyOpt::tryMergingIntoMemset(Instruction *StartInst,
|
||||
|
||||
// Now that we have full information about ranges, loop over the ranges and
|
||||
// emit memset's for anything big enough to be worthwhile.
|
||||
Instruction *AMemSet = 0;
|
||||
Instruction *AMemSet = nullptr;
|
||||
for (MemsetRanges::const_iterator I = Ranges.begin(), E = Ranges.end();
|
||||
I != E; ++I) {
|
||||
const MemsetRange &Range = *I;
|
||||
@@ -492,7 +492,7 @@ Instruction *MemCpyOpt::tryMergingIntoMemset(Instruction *StartInst,
|
||||
bool MemCpyOpt::processStore(StoreInst *SI, BasicBlock::iterator &BBI) {
|
||||
if (!SI->isSimple()) return false;
|
||||
|
||||
if (DL == 0) return false;
|
||||
if (!DL) return false;
|
||||
|
||||
// Detect cases where we're performing call slot forwarding, but
|
||||
// happen to be using a load-store pair to implement it, rather than
|
||||
@@ -501,7 +501,7 @@ bool MemCpyOpt::processStore(StoreInst *SI, BasicBlock::iterator &BBI) {
|
||||
if (LI->isSimple() && LI->hasOneUse() &&
|
||||
LI->getParent() == SI->getParent()) {
|
||||
MemDepResult ldep = MD->getDependency(LI);
|
||||
CallInst *C = 0;
|
||||
CallInst *C = nullptr;
|
||||
if (ldep.isClobber() && !isa<MemCpyInst>(ldep.getInst()))
|
||||
C = dyn_cast<CallInst>(ldep.getInst());
|
||||
|
||||
@@ -513,7 +513,7 @@ bool MemCpyOpt::processStore(StoreInst *SI, BasicBlock::iterator &BBI) {
|
||||
for (BasicBlock::iterator I = --BasicBlock::iterator(SI),
|
||||
E = C; I != E; --I) {
|
||||
if (AA.getModRefInfo(&*I, StoreLoc) != AliasAnalysis::NoModRef) {
|
||||
C = 0;
|
||||
C = nullptr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -604,7 +604,7 @@ bool MemCpyOpt::performCallSlotOptzn(Instruction *cpy,
|
||||
return false;
|
||||
|
||||
// Check that all of src is copied to dest.
|
||||
if (DL == 0) return false;
|
||||
if (!DL) return false;
|
||||
|
||||
ConstantInt *srcArraySize = dyn_cast<ConstantInt>(srcAlloca->getArraySize());
|
||||
if (!srcArraySize)
|
||||
@@ -847,7 +847,7 @@ bool MemCpyOpt::processMemCpy(MemCpyInst *M) {
|
||||
|
||||
// The optimizations after this point require the memcpy size.
|
||||
ConstantInt *CopySize = dyn_cast<ConstantInt>(M->getLength());
|
||||
if (CopySize == 0) return false;
|
||||
if (!CopySize) return false;
|
||||
|
||||
// The are three possible optimizations we can do for memcpy:
|
||||
// a) memcpy-memcpy xform which exposes redundance for DSE.
|
||||
@@ -930,7 +930,7 @@ bool MemCpyOpt::processMemMove(MemMoveInst *M) {
|
||||
|
||||
/// processByValArgument - This is called on every byval argument in call sites.
|
||||
bool MemCpyOpt::processByValArgument(CallSite CS, unsigned ArgNo) {
|
||||
if (DL == 0) return false;
|
||||
if (!DL) return false;
|
||||
|
||||
// Find out what feeds this byval argument.
|
||||
Value *ByValArg = CS.getArgument(ArgNo);
|
||||
@@ -947,13 +947,13 @@ bool MemCpyOpt::processByValArgument(CallSite CS, unsigned ArgNo) {
|
||||
// a memcpy, see if we can byval from the source of the memcpy instead of the
|
||||
// result.
|
||||
MemCpyInst *MDep = dyn_cast<MemCpyInst>(DepInfo.getInst());
|
||||
if (MDep == 0 || MDep->isVolatile() ||
|
||||
if (!MDep || MDep->isVolatile() ||
|
||||
ByValArg->stripPointerCasts() != MDep->getDest())
|
||||
return false;
|
||||
|
||||
// The length of the memcpy must be larger or equal to the size of the byval.
|
||||
ConstantInt *C1 = dyn_cast<ConstantInt>(MDep->getLength());
|
||||
if (C1 == 0 || C1->getValue().getZExtValue() < ByValSize)
|
||||
if (!C1 || C1->getValue().getZExtValue() < ByValSize)
|
||||
return false;
|
||||
|
||||
// Get the alignment of the byval. If the call doesn't specify the alignment,
|
||||
@@ -1044,7 +1044,7 @@ bool MemCpyOpt::runOnFunction(Function &F) {
|
||||
bool MadeChange = false;
|
||||
MD = &getAnalysis<MemoryDependenceAnalysis>();
|
||||
DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
|
||||
DL = DLP ? &DLP->getDataLayout() : 0;
|
||||
DL = DLP ? &DLP->getDataLayout() : nullptr;
|
||||
TLI = &getAnalysis<TargetLibraryInfo>();
|
||||
|
||||
// If we don't have at least memset and memcpy, there is little point of doing
|
||||
@@ -1059,6 +1059,6 @@ bool MemCpyOpt::runOnFunction(Function &F) {
|
||||
MadeChange = true;
|
||||
}
|
||||
|
||||
MD = 0;
|
||||
MD = nullptr;
|
||||
return MadeChange;
|
||||
}
|
||||
|
Reference in New Issue
Block a user