mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +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:
@@ -220,7 +220,7 @@ Expression ValueTable::create_extractvalue_expression(ExtractValueInst *EI) {
|
||||
e.opcode = 0;
|
||||
|
||||
IntrinsicInst *I = dyn_cast<IntrinsicInst>(EI->getAggregateOperand());
|
||||
if (I != 0 && EI->getNumIndices() == 1 && *EI->idx_begin() == 0 ) {
|
||||
if (I != nullptr && EI->getNumIndices() == 1 && *EI->idx_begin() == 0 ) {
|
||||
// EI might be an extract from one of our recognised intrinsics. If it
|
||||
// is we'll synthesize a semantically equivalent expression instead on
|
||||
// an extract value expression.
|
||||
@@ -328,7 +328,7 @@ uint32_t ValueTable::lookup_or_add_call(CallInst *C) {
|
||||
const MemoryDependenceAnalysis::NonLocalDepInfo &deps =
|
||||
MD->getNonLocalCallDependency(CallSite(C));
|
||||
// FIXME: Move the checking logic to MemDep!
|
||||
CallInst* cdep = 0;
|
||||
CallInst* cdep = nullptr;
|
||||
|
||||
// Check to see if we have a single dominating call instruction that is
|
||||
// identical to C.
|
||||
@@ -339,8 +339,8 @@ uint32_t ValueTable::lookup_or_add_call(CallInst *C) {
|
||||
|
||||
// We don't handle non-definitions. If we already have a call, reject
|
||||
// instruction dependencies.
|
||||
if (!I->getResult().isDef() || cdep != 0) {
|
||||
cdep = 0;
|
||||
if (!I->getResult().isDef() || cdep != nullptr) {
|
||||
cdep = nullptr;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -351,7 +351,7 @@ uint32_t ValueTable::lookup_or_add_call(CallInst *C) {
|
||||
continue;
|
||||
}
|
||||
|
||||
cdep = 0;
|
||||
cdep = nullptr;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -552,7 +552,7 @@ namespace {
|
||||
static AvailableValueInBlock getUndef(BasicBlock *BB) {
|
||||
AvailableValueInBlock Res;
|
||||
Res.BB = BB;
|
||||
Res.Val.setPointer(0);
|
||||
Res.Val.setPointer(nullptr);
|
||||
Res.Val.setInt(UndefVal);
|
||||
Res.Offset = 0;
|
||||
return Res;
|
||||
@@ -612,7 +612,7 @@ namespace {
|
||||
public:
|
||||
static char ID; // Pass identification, replacement for typeid
|
||||
explicit GVN(bool noloads = false)
|
||||
: FunctionPass(ID), NoLoads(noloads), MD(0) {
|
||||
: FunctionPass(ID), NoLoads(noloads), MD(nullptr) {
|
||||
initializeGVNPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
|
||||
@@ -650,7 +650,7 @@ namespace {
|
||||
/// removeFromLeaderTable - Scan the list of values corresponding to a given
|
||||
/// value number, and remove the given instruction if encountered.
|
||||
void removeFromLeaderTable(uint32_t N, Instruction *I, BasicBlock *BB) {
|
||||
LeaderTableEntry* Prev = 0;
|
||||
LeaderTableEntry* Prev = nullptr;
|
||||
LeaderTableEntry* Curr = &LeaderTable[N];
|
||||
|
||||
while (Curr->Val != I || Curr->BB != BB) {
|
||||
@@ -662,8 +662,8 @@ namespace {
|
||||
Prev->Next = Curr->Next;
|
||||
} else {
|
||||
if (!Curr->Next) {
|
||||
Curr->Val = 0;
|
||||
Curr->BB = 0;
|
||||
Curr->Val = nullptr;
|
||||
Curr->BB = nullptr;
|
||||
} else {
|
||||
LeaderTableEntry* Next = Curr->Next;
|
||||
Curr->Val = Next->Val;
|
||||
@@ -856,7 +856,7 @@ static Value *CoerceAvailableValueToLoadType(Value *StoredVal,
|
||||
Instruction *InsertPt,
|
||||
const DataLayout &DL) {
|
||||
if (!CanCoerceMustAliasedValueToLoad(StoredVal, LoadedTy, DL))
|
||||
return 0;
|
||||
return nullptr;
|
||||
|
||||
// If this is already the right type, just return it.
|
||||
Type *StoredValTy = StoredVal->getType();
|
||||
@@ -1061,7 +1061,7 @@ static int AnalyzeLoadFromClobberingMemInst(Type *LoadTy, Value *LoadPtr,
|
||||
const DataLayout &DL) {
|
||||
// If the mem operation is a non-constant size, we can't handle it.
|
||||
ConstantInt *SizeCst = dyn_cast<ConstantInt>(MI->getLength());
|
||||
if (SizeCst == 0) return -1;
|
||||
if (!SizeCst) return -1;
|
||||
uint64_t MemSizeInBits = SizeCst->getZExtValue()*8;
|
||||
|
||||
// If this is memset, we just need to see if the offset is valid in the size
|
||||
@@ -1076,10 +1076,10 @@ static int AnalyzeLoadFromClobberingMemInst(Type *LoadTy, Value *LoadPtr,
|
||||
MemTransferInst *MTI = cast<MemTransferInst>(MI);
|
||||
|
||||
Constant *Src = dyn_cast<Constant>(MTI->getSource());
|
||||
if (Src == 0) return -1;
|
||||
if (!Src) return -1;
|
||||
|
||||
GlobalVariable *GV = dyn_cast<GlobalVariable>(GetUnderlyingObject(Src, &DL));
|
||||
if (GV == 0 || !GV->isConstant()) return -1;
|
||||
if (!GV || !GV->isConstant()) return -1;
|
||||
|
||||
// See if the access is within the bounds of the transfer.
|
||||
int Offset = AnalyzeLoadFromClobberingWrite(LoadTy, LoadPtr,
|
||||
@@ -1470,8 +1470,8 @@ void GVN::AnalyzeLoadAvailability(LoadInst *LI, LoadDepVect &Deps,
|
||||
if (S->getValueOperand()->getType() != LI->getType()) {
|
||||
// If the stored value is larger or equal to the loaded value, we can
|
||||
// reuse it.
|
||||
if (DL == 0 || !CanCoerceMustAliasedValueToLoad(S->getValueOperand(),
|
||||
LI->getType(), *DL)) {
|
||||
if (!DL || !CanCoerceMustAliasedValueToLoad(S->getValueOperand(),
|
||||
LI->getType(), *DL)) {
|
||||
UnavailableBlocks.push_back(DepBB);
|
||||
continue;
|
||||
}
|
||||
@@ -1487,7 +1487,7 @@ void GVN::AnalyzeLoadAvailability(LoadInst *LI, LoadDepVect &Deps,
|
||||
if (LD->getType() != LI->getType()) {
|
||||
// If the stored value is larger or equal to the loaded value, we can
|
||||
// reuse it.
|
||||
if (DL == 0 || !CanCoerceMustAliasedValueToLoad(LD, LI->getType(),*DL)){
|
||||
if (!DL || !CanCoerceMustAliasedValueToLoad(LD, LI->getType(),*DL)) {
|
||||
UnavailableBlocks.push_back(DepBB);
|
||||
continue;
|
||||
}
|
||||
@@ -1554,7 +1554,7 @@ bool GVN::PerformLoadPRE(LoadInst *LI, AvailValInBlkVect &ValuesPerBlock,
|
||||
if (IsValueFullyAvailableInBlock(Pred, FullyAvailableBlocks, 0)) {
|
||||
continue;
|
||||
}
|
||||
PredLoads[Pred] = 0;
|
||||
PredLoads[Pred] = nullptr;
|
||||
|
||||
if (Pred->getTerminator()->getNumSuccessors() != 1) {
|
||||
if (isa<IndirectBrInst>(Pred->getTerminator())) {
|
||||
@@ -1592,7 +1592,7 @@ bool GVN::PerformLoadPRE(LoadInst *LI, AvailValInBlkVect &ValuesPerBlock,
|
||||
BasicBlock *OrigPred = *I;
|
||||
BasicBlock *NewPred = splitCriticalEdges(OrigPred, LoadBB);
|
||||
PredLoads.erase(OrigPred);
|
||||
PredLoads[NewPred] = 0;
|
||||
PredLoads[NewPred] = nullptr;
|
||||
DEBUG(dbgs() << "Split critical edge " << OrigPred->getName() << "->"
|
||||
<< LoadBB->getName() << '\n');
|
||||
}
|
||||
@@ -1611,13 +1611,13 @@ bool GVN::PerformLoadPRE(LoadInst *LI, AvailValInBlkVect &ValuesPerBlock,
|
||||
// the load on the pred (?!?), so we can insert code to materialize the
|
||||
// pointer if it is not available.
|
||||
PHITransAddr Address(LI->getPointerOperand(), DL);
|
||||
Value *LoadPtr = 0;
|
||||
Value *LoadPtr = nullptr;
|
||||
LoadPtr = Address.PHITranslateWithInsertion(LoadBB, UnavailablePred,
|
||||
*DT, NewInsts);
|
||||
|
||||
// If we couldn't find or insert a computation of this phi translated value,
|
||||
// we fail PRE.
|
||||
if (LoadPtr == 0) {
|
||||
if (!LoadPtr) {
|
||||
DEBUG(dbgs() << "COULDN'T INSERT PHI TRANSLATED VALUE OF: "
|
||||
<< *LI->getPointerOperand() << "\n");
|
||||
CanDoPRE = false;
|
||||
@@ -1777,7 +1777,7 @@ static void patchReplacementInstruction(Instruction *I, Value *Repl) {
|
||||
MDNode *ReplMD = Metadata[i].second;
|
||||
switch(Kind) {
|
||||
default:
|
||||
ReplInst->setMetadata(Kind, NULL); // Remove unknown metadata
|
||||
ReplInst->setMetadata(Kind, nullptr); // Remove unknown metadata
|
||||
break;
|
||||
case LLVMContext::MD_dbg:
|
||||
llvm_unreachable("getAllMetadataOtherThanDebugLoc returned a MD_dbg");
|
||||
@@ -1833,7 +1833,7 @@ bool GVN::processLoad(LoadInst *L) {
|
||||
// a common base + constant offset, and if the previous store (or memset)
|
||||
// completely covers this load. This sort of thing can happen in bitfield
|
||||
// access code.
|
||||
Value *AvailVal = 0;
|
||||
Value *AvailVal = nullptr;
|
||||
if (StoreInst *DepSI = dyn_cast<StoreInst>(Dep.getInst())) {
|
||||
int Offset = AnalyzeLoadFromClobberingStore(L->getType(),
|
||||
L->getPointerOperand(),
|
||||
@@ -1921,7 +1921,7 @@ bool GVN::processLoad(LoadInst *L) {
|
||||
if (DL) {
|
||||
StoredVal = CoerceAvailableValueToLoadType(StoredVal, L->getType(),
|
||||
L, *DL);
|
||||
if (StoredVal == 0)
|
||||
if (!StoredVal)
|
||||
return false;
|
||||
|
||||
DEBUG(dbgs() << "GVN COERCED STORE:\n" << *DepSI << '\n' << *StoredVal
|
||||
@@ -1950,7 +1950,7 @@ bool GVN::processLoad(LoadInst *L) {
|
||||
if (DL) {
|
||||
AvailableVal = CoerceAvailableValueToLoadType(DepLI, L->getType(),
|
||||
L, *DL);
|
||||
if (AvailableVal == 0)
|
||||
if (!AvailableVal)
|
||||
return false;
|
||||
|
||||
DEBUG(dbgs() << "GVN COERCED LOAD:\n" << *DepLI << "\n" << *AvailableVal
|
||||
@@ -2000,9 +2000,9 @@ bool GVN::processLoad(LoadInst *L) {
|
||||
// a few comparisons of DFS numbers.
|
||||
Value *GVN::findLeader(const BasicBlock *BB, uint32_t num) {
|
||||
LeaderTableEntry Vals = LeaderTable[num];
|
||||
if (!Vals.Val) return 0;
|
||||
if (!Vals.Val) return nullptr;
|
||||
|
||||
Value *Val = 0;
|
||||
Value *Val = nullptr;
|
||||
if (DT->dominates(Vals.BB, BB)) {
|
||||
Val = Vals.Val;
|
||||
if (isa<Constant>(Val)) return Val;
|
||||
@@ -2053,7 +2053,7 @@ static bool isOnlyReachableViaThisEdge(const BasicBlockEdge &E,
|
||||
const BasicBlock *Src = E.getStart();
|
||||
assert((!Pred || Pred == Src) && "No edge between these basic blocks!");
|
||||
(void)Src;
|
||||
return Pred != 0;
|
||||
return Pred != nullptr;
|
||||
}
|
||||
|
||||
/// propagateEquality - The given values are known to be equal in every block
|
||||
@@ -2297,7 +2297,7 @@ bool GVN::processInstruction(Instruction *I) {
|
||||
// Perform fast-path value-number based elimination of values inherited from
|
||||
// dominators.
|
||||
Value *repl = findLeader(I->getParent(), Num);
|
||||
if (repl == 0) {
|
||||
if (!repl) {
|
||||
// Failure, just remember this instance for future use.
|
||||
addToLeaderTable(Num, I, I->getParent());
|
||||
return false;
|
||||
@@ -2320,7 +2320,7 @@ bool GVN::runOnFunction(Function& F) {
|
||||
MD = &getAnalysis<MemoryDependenceAnalysis>();
|
||||
DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
|
||||
DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
|
||||
DL = DLP ? &DLP->getDataLayout() : 0;
|
||||
DL = DLP ? &DLP->getDataLayout() : nullptr;
|
||||
TLI = &getAnalysis<TargetLibraryInfo>();
|
||||
VN.setAliasAnalysis(&getAnalysis<AliasAnalysis>());
|
||||
VN.setMemDep(MD);
|
||||
@@ -2462,7 +2462,7 @@ bool GVN::performPRE(Function &F) {
|
||||
// more complicated to get right.
|
||||
unsigned NumWith = 0;
|
||||
unsigned NumWithout = 0;
|
||||
BasicBlock *PREPred = 0;
|
||||
BasicBlock *PREPred = nullptr;
|
||||
predMap.clear();
|
||||
|
||||
for (pred_iterator PI = pred_begin(CurrentBlock),
|
||||
@@ -2480,8 +2480,8 @@ bool GVN::performPRE(Function &F) {
|
||||
}
|
||||
|
||||
Value* predV = findLeader(P, ValNo);
|
||||
if (predV == 0) {
|
||||
predMap.push_back(std::make_pair(static_cast<Value *>(0), P));
|
||||
if (!predV) {
|
||||
predMap.push_back(std::make_pair(static_cast<Value *>(nullptr), P));
|
||||
PREPred = P;
|
||||
++NumWithout;
|
||||
} else if (predV == CurInst) {
|
||||
|
||||
Reference in New Issue
Block a user