mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
[C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206142 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -54,7 +54,7 @@ inline unsigned ComputeLinearIndex(Type *Ty,
|
||||
///
|
||||
void ComputeValueVTs(const TargetLowering &TLI, Type *Ty,
|
||||
SmallVectorImpl<EVT> &ValueVTs,
|
||||
SmallVectorImpl<uint64_t> *Offsets = 0,
|
||||
SmallVectorImpl<uint64_t> *Offsets = nullptr,
|
||||
uint64_t StartingOffset = 0);
|
||||
|
||||
/// ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
|
||||
|
@@ -247,7 +247,7 @@ namespace llvm {
|
||||
/// an explicit alignment requested, it will override the alignment request
|
||||
/// if required for correctness.
|
||||
///
|
||||
void EmitAlignment(unsigned NumBits, const GlobalValue *GV = 0) const;
|
||||
void EmitAlignment(unsigned NumBits, const GlobalValue *GV = nullptr) const;
|
||||
|
||||
/// EmitBasicBlockStart - This method prints the label for the specified
|
||||
/// MachineBasicBlock, an alignment (if present) and a comment describing
|
||||
@@ -395,10 +395,10 @@ namespace llvm {
|
||||
//===------------------------------------------------------------------===//
|
||||
|
||||
/// EmitSLEB128 - emit the specified signed leb128 value.
|
||||
void EmitSLEB128(int64_t Value, const char *Desc = 0) const;
|
||||
void EmitSLEB128(int64_t Value, const char *Desc = nullptr) const;
|
||||
|
||||
/// EmitULEB128 - emit the specified unsigned leb128 value.
|
||||
void EmitULEB128(uint64_t Value, const char *Desc = 0,
|
||||
void EmitULEB128(uint64_t Value, const char *Desc = nullptr,
|
||||
unsigned PadTo = 0) const;
|
||||
|
||||
/// EmitCFAByte - Emit a .byte 42 directive for a DW_CFA_xxx value.
|
||||
@@ -408,7 +408,7 @@ namespace llvm {
|
||||
/// encoding. If verbose assembly output is enabled, we output comments
|
||||
/// describing the encoding. Desc is a string saying what the encoding is
|
||||
/// specifying (e.g. "LSDA").
|
||||
void EmitEncodingByte(unsigned Val, const char *Desc = 0) const;
|
||||
void EmitEncodingByte(unsigned Val, const char *Desc = nullptr) const;
|
||||
|
||||
/// GetSizeOfEncodedValue - Return the size of the encoding in bytes.
|
||||
unsigned GetSizeOfEncodedValue(unsigned Encoding) const;
|
||||
@@ -491,7 +491,7 @@ namespace llvm {
|
||||
mutable unsigned SetCounter;
|
||||
|
||||
/// EmitInlineAsm - Emit a blob of inline asm to the output streamer.
|
||||
void EmitInlineAsm(StringRef Str, const MDNode *LocMDNode = 0,
|
||||
void EmitInlineAsm(StringRef Str, const MDNode *LocMDNode = nullptr,
|
||||
InlineAsm::AsmDialect AsmDialect =
|
||||
InlineAsm::AD_ATT) const;
|
||||
|
||||
|
@@ -260,7 +260,7 @@ public:
|
||||
// Check for buffer overflow.
|
||||
if (Size >= (uintptr_t)(BufferEnd-CurBufferPtr)) {
|
||||
CurBufferPtr = BufferEnd;
|
||||
Result = 0;
|
||||
Result = nullptr;
|
||||
} else {
|
||||
// Allocate the space.
|
||||
Result = CurBufferPtr;
|
||||
@@ -334,7 +334,9 @@ public:
|
||||
|
||||
/// getLabelLocations - Return the label locations map of the label IDs to
|
||||
/// their address.
|
||||
virtual DenseMap<MCSymbol*, uintptr_t> *getLabelLocations() { return 0; }
|
||||
virtual DenseMap<MCSymbol*, uintptr_t> *getLabelLocations() {
|
||||
return nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
@@ -62,7 +62,7 @@ namespace llvm {
|
||||
}
|
||||
|
||||
void releaseState() override {
|
||||
SUnits = 0;
|
||||
SUnits = nullptr;
|
||||
}
|
||||
|
||||
unsigned getLatency(unsigned NodeNum) const {
|
||||
|
@@ -44,7 +44,7 @@ typedef std::pair<const MachineInstr *, const MachineInstr *> InsnRange;
|
||||
///
|
||||
class LexicalScopes {
|
||||
public:
|
||||
LexicalScopes() : MF(NULL), CurrentFnLexicalScope(NULL) {}
|
||||
LexicalScopes() : MF(nullptr), CurrentFnLexicalScope(nullptr) {}
|
||||
~LexicalScopes();
|
||||
|
||||
/// initialize - Scan machine function and constuct lexical scope nest, resets
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
void reset();
|
||||
|
||||
/// empty - Return true if there is any lexical scope information available.
|
||||
bool empty() { return CurrentFnLexicalScope == NULL; }
|
||||
bool empty() { return CurrentFnLexicalScope == nullptr; }
|
||||
|
||||
/// isCurrentFunctionScope - Return true if given lexical scope represents
|
||||
/// current function.
|
||||
@@ -160,8 +160,8 @@ class LexicalScope {
|
||||
|
||||
public:
|
||||
LexicalScope(LexicalScope *P, const MDNode *D, const MDNode *I, bool A)
|
||||
: Parent(P), Desc(D), InlinedAtLocation(I), AbstractScope(A), LastInsn(0),
|
||||
FirstInsn(0), DFSIn(0), DFSOut(0) {
|
||||
: Parent(P), Desc(D), InlinedAtLocation(I), AbstractScope(A),
|
||||
LastInsn(nullptr), FirstInsn(nullptr), DFSIn(0), DFSOut(0) {
|
||||
if (Parent)
|
||||
Parent->addChild(this);
|
||||
}
|
||||
@@ -199,11 +199,11 @@ public:
|
||||
/// closeInsnRange - Create a range based on FirstInsn and LastInsn collected
|
||||
/// until now. This is used when a new scope is encountered while walking
|
||||
/// machine instructions.
|
||||
void closeInsnRange(LexicalScope *NewScope = NULL) {
|
||||
void closeInsnRange(LexicalScope *NewScope = nullptr) {
|
||||
assert(LastInsn && "Last insn missing!");
|
||||
Ranges.push_back(InsnRange(FirstInsn, LastInsn));
|
||||
FirstInsn = NULL;
|
||||
LastInsn = NULL;
|
||||
FirstInsn = nullptr;
|
||||
LastInsn = nullptr;
|
||||
// If Parent dominates NewScope then do not close Parent's instruction
|
||||
// range.
|
||||
if (Parent && (!NewScope || !Parent->dominates(NewScope)))
|
||||
|
@@ -116,13 +116,13 @@ namespace llvm {
|
||||
/// Return the value leaving the instruction, if any. This can be a
|
||||
/// live-through value, or a live def. A dead def returns NULL.
|
||||
VNInfo *valueOut() const {
|
||||
return isDeadDef() ? 0 : LateVal;
|
||||
return isDeadDef() ? nullptr : LateVal;
|
||||
}
|
||||
|
||||
/// Return the value defined by this instruction, if any. This includes
|
||||
/// dead defs, it is the value created by the instruction's def operands.
|
||||
VNInfo *valueDefined() const {
|
||||
return EarlyVal == LateVal ? 0 : LateVal;
|
||||
return EarlyVal == LateVal ? nullptr : LateVal;
|
||||
}
|
||||
|
||||
/// Return the end point of the last live range segment to interact with
|
||||
@@ -154,7 +154,7 @@ namespace llvm {
|
||||
SlotIndex end; // End point of the interval (exclusive)
|
||||
VNInfo *valno; // identifier for the value contained in this segment.
|
||||
|
||||
Segment() : valno(0) {}
|
||||
Segment() : valno(nullptr) {}
|
||||
|
||||
Segment(SlotIndex S, SlotIndex E, VNInfo *V)
|
||||
: start(S), end(E), valno(V) {
|
||||
@@ -336,20 +336,20 @@ namespace llvm {
|
||||
/// is none.
|
||||
const Segment *getSegmentContaining(SlotIndex Idx) const {
|
||||
const_iterator I = FindSegmentContaining(Idx);
|
||||
return I == end() ? 0 : &*I;
|
||||
return I == end() ? nullptr : &*I;
|
||||
}
|
||||
|
||||
/// Return the live segment that contains the specified index, or null if
|
||||
/// there is none.
|
||||
Segment *getSegmentContaining(SlotIndex Idx) {
|
||||
iterator I = FindSegmentContaining(Idx);
|
||||
return I == end() ? 0 : &*I;
|
||||
return I == end() ? nullptr : &*I;
|
||||
}
|
||||
|
||||
/// getVNInfoAt - Return the VNInfo that is live at Idx, or NULL.
|
||||
VNInfo *getVNInfoAt(SlotIndex Idx) const {
|
||||
const_iterator I = FindSegmentContaining(Idx);
|
||||
return I == end() ? 0 : I->valno;
|
||||
return I == end() ? nullptr : I->valno;
|
||||
}
|
||||
|
||||
/// getVNInfoBefore - Return the VNInfo that is live up to but not
|
||||
@@ -357,7 +357,7 @@ namespace llvm {
|
||||
/// used by an instruction at this SlotIndex position.
|
||||
VNInfo *getVNInfoBefore(SlotIndex Idx) const {
|
||||
const_iterator I = FindSegmentContaining(Idx.getPrevSlot());
|
||||
return I == end() ? 0 : I->valno;
|
||||
return I == end() ? nullptr : I->valno;
|
||||
}
|
||||
|
||||
/// Return an iterator to the segment that contains the specified index, or
|
||||
@@ -443,13 +443,13 @@ namespace llvm {
|
||||
const_iterator I = find(Idx.getBaseIndex());
|
||||
const_iterator E = end();
|
||||
if (I == E)
|
||||
return LiveQueryResult(0, 0, SlotIndex(), false);
|
||||
return LiveQueryResult(nullptr, nullptr, SlotIndex(), false);
|
||||
|
||||
// Is this an instruction live-in segment?
|
||||
// If Idx is the start index of a basic block, include live-in segments
|
||||
// that start at Idx.getBaseIndex().
|
||||
VNInfo *EarlyVal = 0;
|
||||
VNInfo *LateVal = 0;
|
||||
VNInfo *EarlyVal = nullptr;
|
||||
VNInfo *LateVal = nullptr;
|
||||
SlotIndex EndPoint;
|
||||
bool Kill = false;
|
||||
if (I->start <= Idx.getBaseIndex()) {
|
||||
@@ -466,7 +466,7 @@ namespace llvm {
|
||||
// predecessor.
|
||||
// Such a value is not live-in.
|
||||
if (EarlyVal->def == Idx.getBaseIndex())
|
||||
EarlyVal = 0;
|
||||
EarlyVal = nullptr;
|
||||
}
|
||||
// I now points to the segment that may be live-through, or defined by
|
||||
// this instr. Ignore segments starting after the current instr.
|
||||
@@ -597,7 +597,7 @@ namespace llvm {
|
||||
public:
|
||||
/// Create a LiveRangeUpdater for adding segments to LR.
|
||||
/// LR will temporarily be in an invalid state until flush() is called.
|
||||
LiveRangeUpdater(LiveRange *lr = 0) : LR(lr) {}
|
||||
LiveRangeUpdater(LiveRange *lr = nullptr) : LR(lr) {}
|
||||
|
||||
~LiveRangeUpdater() { flush(); }
|
||||
|
||||
|
@@ -137,7 +137,7 @@ namespace llvm {
|
||||
// Interval removal.
|
||||
void removeInterval(unsigned Reg) {
|
||||
delete VirtRegIntervals[Reg];
|
||||
VirtRegIntervals[Reg] = 0;
|
||||
VirtRegIntervals[Reg] = nullptr;
|
||||
}
|
||||
|
||||
/// Given a register and an instruction, adds a live segment from that
|
||||
@@ -153,7 +153,7 @@ namespace llvm {
|
||||
/// Return true if the interval may have been separated into multiple
|
||||
/// connected components.
|
||||
bool shrinkToUses(LiveInterval *li,
|
||||
SmallVectorImpl<MachineInstr*> *dead = 0);
|
||||
SmallVectorImpl<MachineInstr*> *dead = nullptr);
|
||||
|
||||
/// extendToIndices - Extend the live range of LI to reach all points in
|
||||
/// Indices. The points in the Indices array must be jointly dominated by
|
||||
@@ -262,7 +262,7 @@ namespace llvm {
|
||||
bool runOnMachineFunction(MachineFunction&) override;
|
||||
|
||||
/// print - Implement the dump method.
|
||||
void print(raw_ostream &O, const Module* = 0) const override;
|
||||
void print(raw_ostream &O, const Module* = nullptr) const override;
|
||||
|
||||
/// intervalIsInOneMBB - If LI is confined to a single basic block, return
|
||||
/// a pointer to that block. If LI is live in to or out of any block,
|
||||
|
@@ -122,8 +122,8 @@ public:
|
||||
{}
|
||||
|
||||
void clear() {
|
||||
LiveUnion = NULL;
|
||||
VirtReg = NULL;
|
||||
LiveUnion = nullptr;
|
||||
VirtReg = nullptr;
|
||||
InterferingVRegs.clear();
|
||||
CheckedFirstInterference = false;
|
||||
SeenAllInterferences = false;
|
||||
@@ -182,7 +182,7 @@ public:
|
||||
unsigned Size;
|
||||
LiveIntervalUnion *LIUs;
|
||||
public:
|
||||
Array() : Size(0), LIUs(0) {}
|
||||
Array() : Size(0), LIUs(nullptr) {}
|
||||
~Array() { clear(); }
|
||||
|
||||
// Initialize the array to have Size entries.
|
||||
|
@@ -48,7 +48,7 @@ class LivePhysRegs {
|
||||
LivePhysRegs &operator=(const LivePhysRegs&) LLVM_DELETED_FUNCTION;
|
||||
public:
|
||||
/// \brief Constructs a new empty LivePhysRegs set.
|
||||
LivePhysRegs() : TRI(0), LiveRegs() {}
|
||||
LivePhysRegs() : TRI(nullptr), LiveRegs() {}
|
||||
|
||||
/// \brief Constructs and initialize an empty LivePhysRegs set.
|
||||
LivePhysRegs(const TargetRegisterInfo *TRI) : TRI(TRI) {
|
||||
|
@@ -116,7 +116,7 @@ public:
|
||||
MachineFunction &MF,
|
||||
LiveIntervals &lis,
|
||||
VirtRegMap *vrm,
|
||||
Delegate *delegate = 0)
|
||||
Delegate *delegate = nullptr)
|
||||
: Parent(parent), NewRegs(newRegs),
|
||||
MRI(MF.getRegInfo()), LIS(lis), VRM(vrm),
|
||||
TII(*MF.getTarget().getInstrInfo()),
|
||||
@@ -174,7 +174,7 @@ public:
|
||||
struct Remat {
|
||||
VNInfo *ParentVNI; // parent_'s value at the remat location.
|
||||
MachineInstr *OrigMI; // Instruction defining ParentVNI.
|
||||
explicit Remat(VNInfo *ParentVNI) : ParentVNI(ParentVNI), OrigMI(0) {}
|
||||
explicit Remat(VNInfo *ParentVNI) : ParentVNI(ParentVNI), OrigMI(nullptr) {}
|
||||
};
|
||||
|
||||
/// canRematerializeAt - Determine if ParentVNI can be rematerialized at
|
||||
|
@@ -92,7 +92,7 @@ namespace llvm {
|
||||
bool runOnMachineFunction(MachineFunction&) override;
|
||||
|
||||
/// print - Implement the dump method.
|
||||
void print(raw_ostream &O, const Module* = 0) const override;
|
||||
void print(raw_ostream &O, const Module* = nullptr) const override;
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -160,7 +160,7 @@ public:
|
||||
template<class OtherTy, class OtherIterTy>
|
||||
bundle_iterator(const bundle_iterator<OtherTy, OtherIterTy> &I)
|
||||
: MII(I.getInstrIterator()) {}
|
||||
bundle_iterator() : MII(0) {}
|
||||
bundle_iterator() : MII(nullptr) {}
|
||||
|
||||
Ty &operator*() const { return *MII; }
|
||||
Ty *operator->() const { return &operator*(); }
|
||||
@@ -621,7 +621,7 @@ public:
|
||||
|
||||
// Debugging methods.
|
||||
void dump() const;
|
||||
void print(raw_ostream &OS, SlotIndexes* = 0) const;
|
||||
void print(raw_ostream &OS, SlotIndexes* = nullptr) const;
|
||||
|
||||
// Printing method used by LoopInfo.
|
||||
void printAsOperand(raw_ostream &OS, bool PrintType = true);
|
||||
|
@@ -262,7 +262,7 @@ public:
|
||||
// Check for buffer overflow.
|
||||
if (Size >= (uintptr_t)(BufferEnd-CurBufferPtr)) {
|
||||
CurBufferPtr = BufferEnd;
|
||||
Result = 0;
|
||||
Result = nullptr;
|
||||
} else {
|
||||
// Allocate the space.
|
||||
Result = CurBufferPtr;
|
||||
|
@@ -519,7 +519,7 @@ public:
|
||||
/// a nonnegative identifier to represent it.
|
||||
///
|
||||
int CreateStackObject(uint64_t Size, unsigned Alignment, bool isSS,
|
||||
const AllocaInst *Alloca = 0);
|
||||
const AllocaInst *Alloca = nullptr);
|
||||
|
||||
/// CreateSpillStackObject - Create a new statically sized stack object that
|
||||
/// represents a spill slot, returning a nonnegative identifier to represent
|
||||
|
@@ -271,12 +271,12 @@ public:
|
||||
/// dense, and match the ordering of the blocks within the function. If a
|
||||
/// specific MachineBasicBlock is specified, only that block and those after
|
||||
/// it are renumbered.
|
||||
void RenumberBlocks(MachineBasicBlock *MBBFrom = 0);
|
||||
void RenumberBlocks(MachineBasicBlock *MBBFrom = nullptr);
|
||||
|
||||
/// print - Print out the MachineFunction in a format suitable for debugging
|
||||
/// to the specified stream.
|
||||
///
|
||||
void print(raw_ostream &OS, SlotIndexes* = 0) const;
|
||||
void print(raw_ostream &OS, SlotIndexes* = nullptr) const;
|
||||
|
||||
/// viewCFG - This function is meant for use from the debugger. You can just
|
||||
/// say 'call F->viewCFG()' and a ghostview window should pop up from the
|
||||
@@ -299,7 +299,7 @@ public:
|
||||
|
||||
/// verify - Run the current MachineFunction through the machine code
|
||||
/// verifier, useful for debugger use.
|
||||
void verify(Pass *p = NULL, const char *Banner = NULL) const;
|
||||
void verify(Pass *p = nullptr, const char *Banner = nullptr) const;
|
||||
|
||||
// Provide accessors for the MachineBasicBlock list...
|
||||
typedef BasicBlockListType::iterator iterator;
|
||||
@@ -367,7 +367,7 @@ public:
|
||||
/// implementation.
|
||||
void removeFromMBBNumbering(unsigned N) {
|
||||
assert(N < MBBNumbering.size() && "Illegal basic block #");
|
||||
MBBNumbering[N] = 0;
|
||||
MBBNumbering[N] = nullptr;
|
||||
}
|
||||
|
||||
/// CreateMachineInstr - Allocate a new MachineInstr. Use this instead
|
||||
@@ -392,7 +392,7 @@ public:
|
||||
/// CreateMachineBasicBlock - Allocate a new MachineBasicBlock. Use this
|
||||
/// instead of `new MachineBasicBlock'.
|
||||
///
|
||||
MachineBasicBlock *CreateMachineBasicBlock(const BasicBlock *bb = 0);
|
||||
MachineBasicBlock *CreateMachineBasicBlock(const BasicBlock *bb = nullptr);
|
||||
|
||||
/// DeleteMachineBasicBlock - Delete the given MachineBasicBlock.
|
||||
///
|
||||
@@ -404,8 +404,8 @@ public:
|
||||
MachineMemOperand *getMachineMemOperand(MachinePointerInfo PtrInfo,
|
||||
unsigned f, uint64_t s,
|
||||
unsigned base_alignment,
|
||||
const MDNode *TBAAInfo = 0,
|
||||
const MDNode *Ranges = 0);
|
||||
const MDNode *TBAAInfo = nullptr,
|
||||
const MDNode *Ranges = nullptr);
|
||||
|
||||
/// getMachineMemOperand - Allocate a new MachineMemOperand by copying
|
||||
/// an existing one, adjusting by an offset and using the given size.
|
||||
|
@@ -760,7 +760,8 @@ public:
|
||||
/// is a read of a super-register.
|
||||
/// This does not count partial redefines of virtual registers as reads:
|
||||
/// %reg1024:6 = OP.
|
||||
bool readsRegister(unsigned Reg, const TargetRegisterInfo *TRI = NULL) const {
|
||||
bool readsRegister(unsigned Reg,
|
||||
const TargetRegisterInfo *TRI = nullptr) const {
|
||||
return findRegisterUseOperandIdx(Reg, false, TRI) != -1;
|
||||
}
|
||||
|
||||
@@ -776,12 +777,13 @@ public:
|
||||
/// partial defines.
|
||||
/// If Ops is not null, all operand indices for Reg are added.
|
||||
std::pair<bool,bool> readsWritesVirtualRegister(unsigned Reg,
|
||||
SmallVectorImpl<unsigned> *Ops = 0) const;
|
||||
SmallVectorImpl<unsigned> *Ops = nullptr) const;
|
||||
|
||||
/// killsRegister - Return true if the MachineInstr kills the specified
|
||||
/// register. If TargetRegisterInfo is passed, then it also checks if there is
|
||||
/// a kill of a super-register.
|
||||
bool killsRegister(unsigned Reg, const TargetRegisterInfo *TRI = NULL) const {
|
||||
bool killsRegister(unsigned Reg,
|
||||
const TargetRegisterInfo *TRI = nullptr) const {
|
||||
return findRegisterUseOperandIdx(Reg, true, TRI) != -1;
|
||||
}
|
||||
|
||||
@@ -789,7 +791,8 @@ public:
|
||||
/// specified register. If TargetRegisterInfo is passed, then it also checks
|
||||
/// if there is a def of a super-register.
|
||||
/// NOTE: It's ignoring subreg indices on virtual registers.
|
||||
bool definesRegister(unsigned Reg, const TargetRegisterInfo *TRI=NULL) const {
|
||||
bool definesRegister(unsigned Reg,
|
||||
const TargetRegisterInfo *TRI = nullptr) const {
|
||||
return findRegisterDefOperandIdx(Reg, false, false, TRI) != -1;
|
||||
}
|
||||
|
||||
@@ -804,7 +807,7 @@ public:
|
||||
/// instruction. If TargetRegisterInfo is passed, then it also checks
|
||||
/// if there is a dead def of a super-register.
|
||||
bool registerDefIsDead(unsigned Reg,
|
||||
const TargetRegisterInfo *TRI = NULL) const {
|
||||
const TargetRegisterInfo *TRI = nullptr) const {
|
||||
return findRegisterDefOperandIdx(Reg, true, false, TRI) != -1;
|
||||
}
|
||||
|
||||
@@ -812,14 +815,14 @@ public:
|
||||
/// the specific register or -1 if it is not found. It further tightens
|
||||
/// the search criteria to a use that kills the register if isKill is true.
|
||||
int findRegisterUseOperandIdx(unsigned Reg, bool isKill = false,
|
||||
const TargetRegisterInfo *TRI = NULL) const;
|
||||
const TargetRegisterInfo *TRI = nullptr) const;
|
||||
|
||||
/// findRegisterUseOperand - Wrapper for findRegisterUseOperandIdx, it returns
|
||||
/// a pointer to the MachineOperand rather than an index.
|
||||
MachineOperand *findRegisterUseOperand(unsigned Reg, bool isKill = false,
|
||||
const TargetRegisterInfo *TRI = NULL) {
|
||||
const TargetRegisterInfo *TRI = nullptr) {
|
||||
int Idx = findRegisterUseOperandIdx(Reg, isKill, TRI);
|
||||
return (Idx == -1) ? NULL : &getOperand(Idx);
|
||||
return (Idx == -1) ? nullptr : &getOperand(Idx);
|
||||
}
|
||||
|
||||
/// findRegisterDefOperandIdx() - Returns the operand index that is a def of
|
||||
@@ -830,14 +833,14 @@ public:
|
||||
/// This may also return a register mask operand when Overlap is true.
|
||||
int findRegisterDefOperandIdx(unsigned Reg,
|
||||
bool isDead = false, bool Overlap = false,
|
||||
const TargetRegisterInfo *TRI = NULL) const;
|
||||
const TargetRegisterInfo *TRI = nullptr) const;
|
||||
|
||||
/// findRegisterDefOperand - Wrapper for findRegisterDefOperandIdx, it returns
|
||||
/// a pointer to the MachineOperand rather than an index.
|
||||
MachineOperand *findRegisterDefOperand(unsigned Reg, bool isDead = false,
|
||||
const TargetRegisterInfo *TRI = NULL) {
|
||||
const TargetRegisterInfo *TRI = nullptr) {
|
||||
int Idx = findRegisterDefOperandIdx(Reg, isDead, false, TRI);
|
||||
return (Idx == -1) ? NULL : &getOperand(Idx);
|
||||
return (Idx == -1) ? nullptr : &getOperand(Idx);
|
||||
}
|
||||
|
||||
/// findFirstPredOperandIdx() - Find the index of the first operand in the
|
||||
@@ -855,7 +858,7 @@ public:
|
||||
/// The flag operand is an immediate that can be decoded with methods like
|
||||
/// InlineAsm::hasRegClassConstraint().
|
||||
///
|
||||
int findInlineAsmFlagIdx(unsigned OpIdx, unsigned *GroupNo = 0) const;
|
||||
int findInlineAsmFlagIdx(unsigned OpIdx, unsigned *GroupNo = nullptr) const;
|
||||
|
||||
/// getRegClassConstraint - Compute the static register class constraint for
|
||||
/// operand OpIdx. For normal instructions, this is derived from the
|
||||
@@ -917,7 +920,8 @@ public:
|
||||
/// check if the register def is tied to a source operand, due to either
|
||||
/// two-address elimination or inline assembly constraints. Returns the
|
||||
/// first tied use operand index by reference if UseOpIdx is not null.
|
||||
bool isRegTiedToUseOperand(unsigned DefOpIdx, unsigned *UseOpIdx = 0) const {
|
||||
bool isRegTiedToUseOperand(unsigned DefOpIdx,
|
||||
unsigned *UseOpIdx = nullptr) const {
|
||||
const MachineOperand &MO = getOperand(DefOpIdx);
|
||||
if (!MO.isReg() || !MO.isDef() || !MO.isTied())
|
||||
return false;
|
||||
@@ -929,7 +933,8 @@ public:
|
||||
/// isRegTiedToDefOperand - Return true if the use operand of the specified
|
||||
/// index is tied to an def operand. It also returns the def operand index by
|
||||
/// reference if DefOpIdx is not null.
|
||||
bool isRegTiedToDefOperand(unsigned UseOpIdx, unsigned *DefOpIdx = 0) const {
|
||||
bool isRegTiedToDefOperand(unsigned UseOpIdx,
|
||||
unsigned *DefOpIdx = nullptr) const {
|
||||
const MachineOperand &MO = getOperand(UseOpIdx);
|
||||
if (!MO.isReg() || !MO.isUse() || !MO.isTied())
|
||||
return false;
|
||||
@@ -968,7 +973,8 @@ public:
|
||||
|
||||
/// addRegisterDefined - We have determined MI defines a register. Make sure
|
||||
/// there is an operand defining Reg.
|
||||
void addRegisterDefined(unsigned Reg, const TargetRegisterInfo *RegInfo = 0);
|
||||
void addRegisterDefined(unsigned Reg,
|
||||
const TargetRegisterInfo *RegInfo = nullptr);
|
||||
|
||||
/// setPhysRegsDeadExcept - Mark every physreg used by this instruction as
|
||||
/// dead except those in the UsedRegs list.
|
||||
@@ -1022,7 +1028,7 @@ public:
|
||||
//
|
||||
// Debugging support
|
||||
//
|
||||
void print(raw_ostream &OS, const TargetMachine *TM = 0,
|
||||
void print(raw_ostream &OS, const TargetMachine *TM = nullptr,
|
||||
bool SkipOpers = false) const;
|
||||
void dump() const;
|
||||
|
||||
@@ -1123,7 +1129,7 @@ private:
|
||||
/// useful for CSE, etc.
|
||||
struct MachineInstrExpressionTrait : DenseMapInfo<MachineInstr*> {
|
||||
static inline MachineInstr *getEmptyKey() {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static inline MachineInstr *getTombstoneKey() {
|
||||
|
@@ -46,7 +46,7 @@ class MachineInstrBuilder {
|
||||
MachineFunction *MF;
|
||||
MachineInstr *MI;
|
||||
public:
|
||||
MachineInstrBuilder() : MF(0), MI(0) {}
|
||||
MachineInstrBuilder() : MF(nullptr), MI(nullptr) {}
|
||||
|
||||
/// Create a MachineInstrBuilder for manipulating an existing instruction.
|
||||
/// F must be the machine function that was used to allocate I.
|
||||
|
@@ -196,7 +196,7 @@ public:
|
||||
/// each operand referring to Reg.
|
||||
/// @returns A filled-in RegInfo struct.
|
||||
VirtRegInfo analyzeVirtReg(unsigned Reg,
|
||||
SmallVectorImpl<std::pair<MachineInstr*, unsigned> > *Ops = 0);
|
||||
SmallVectorImpl<std::pair<MachineInstr*, unsigned> > *Ops = nullptr);
|
||||
|
||||
/// analyzePhysReg - Analyze how the current instruction or bundle uses a
|
||||
/// physical register. This function should not be called after operator++(),
|
||||
|
@@ -38,11 +38,11 @@ struct MachinePointerInfo {
|
||||
/// Offset - This is an offset from the base Value*.
|
||||
int64_t Offset;
|
||||
|
||||
explicit MachinePointerInfo(const Value *v = 0, int64_t offset = 0)
|
||||
explicit MachinePointerInfo(const Value *v = nullptr, int64_t offset = 0)
|
||||
: V(v), Offset(offset) {}
|
||||
|
||||
MachinePointerInfo getWithOffset(int64_t O) const {
|
||||
if (V == 0) return MachinePointerInfo(0, 0);
|
||||
if (V == nullptr) return MachinePointerInfo(nullptr, 0);
|
||||
return MachinePointerInfo(V, Offset+O);
|
||||
}
|
||||
|
||||
@@ -109,8 +109,8 @@ public:
|
||||
/// MachineMemOperand - Construct an MachineMemOperand object with the
|
||||
/// specified PtrInfo, flags, size, and base alignment.
|
||||
MachineMemOperand(MachinePointerInfo PtrInfo, unsigned flags, uint64_t s,
|
||||
unsigned base_alignment, const MDNode *TBAAInfo = 0,
|
||||
const MDNode *Ranges = 0);
|
||||
unsigned base_alignment, const MDNode *TBAAInfo = nullptr,
|
||||
const MDNode *Ranges = nullptr);
|
||||
|
||||
const MachinePointerInfo &getPointerInfo() const { return PtrInfo; }
|
||||
|
||||
|
@@ -71,7 +71,7 @@ struct LandingPadInfo {
|
||||
std::vector<int> TypeIds; // List of type ids (filters negative)
|
||||
|
||||
explicit LandingPadInfo(MachineBasicBlock *MBB)
|
||||
: LandingPadBlock(MBB), LandingPadLabel(0), Personality(0) {}
|
||||
: LandingPadBlock(MBB), LandingPadLabel(nullptr), Personality(nullptr) {}
|
||||
};
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@@ -201,7 +201,7 @@ public:
|
||||
///
|
||||
template<typename Ty>
|
||||
Ty &getObjFileInfo() {
|
||||
if (ObjFileMMI == 0)
|
||||
if (ObjFileMMI == nullptr)
|
||||
ObjFileMMI = new Ty(*this);
|
||||
return *static_cast<Ty*>(ObjFileMMI);
|
||||
}
|
||||
@@ -334,7 +334,7 @@ public:
|
||||
|
||||
/// TidyLandingPads - Remap landing pad labels and remove any deleted landing
|
||||
/// pads.
|
||||
void TidyLandingPads(DenseMap<MCSymbol*, uintptr_t> *LPMap = 0);
|
||||
void TidyLandingPads(DenseMap<MCSymbol*, uintptr_t> *LPMap = nullptr);
|
||||
|
||||
/// getLandingPads - Return a reference to the landing pad info for the
|
||||
/// current function.
|
||||
|
@@ -181,7 +181,7 @@ private:
|
||||
} Contents;
|
||||
|
||||
explicit MachineOperand(MachineOperandType K)
|
||||
: OpKind(K), SubReg_TargetFlags(0), ParentMI(0) {}
|
||||
: OpKind(K), SubReg_TargetFlags(0), ParentMI(nullptr) {}
|
||||
public:
|
||||
/// getType - Returns the MachineOperandType for this operand.
|
||||
///
|
||||
@@ -215,9 +215,9 @@ public:
|
||||
///
|
||||
/// Never call clearParent() on an operand in a MachineInstr.
|
||||
///
|
||||
void clearParent() { ParentMI = 0; }
|
||||
void clearParent() { ParentMI = nullptr; }
|
||||
|
||||
void print(raw_ostream &os, const TargetMachine *TM = 0) const;
|
||||
void print(raw_ostream &os, const TargetMachine *TM = nullptr) const;
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Accessors that tell you what kind of MachineOperand you're looking at.
|
||||
@@ -593,8 +593,8 @@ public:
|
||||
Op.TiedTo = 0;
|
||||
Op.IsDebug = isDebug;
|
||||
Op.SmallContents.RegNo = Reg;
|
||||
Op.Contents.Reg.Prev = 0;
|
||||
Op.Contents.Reg.Next = 0;
|
||||
Op.Contents.Reg.Prev = nullptr;
|
||||
Op.Contents.Reg.Next = nullptr;
|
||||
Op.setSubReg(SubReg);
|
||||
return Op;
|
||||
}
|
||||
@@ -711,12 +711,12 @@ private:
|
||||
/// part of a machine instruction.
|
||||
bool isOnRegUseList() const {
|
||||
assert(isReg() && "Can only add reg operand to use lists");
|
||||
return Contents.Reg.Prev != 0;
|
||||
return Contents.Reg.Prev != nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
inline raw_ostream &operator<<(raw_ostream &OS, const MachineOperand& MO) {
|
||||
MO.print(OS, 0);
|
||||
MO.print(OS, nullptr);
|
||||
return OS;
|
||||
}
|
||||
|
||||
|
@@ -59,7 +59,7 @@ private:
|
||||
public:
|
||||
|
||||
MachinePassRegistryNode(const char *N, const char *D, MachinePassCtor C)
|
||||
: Next(NULL)
|
||||
: Next(nullptr)
|
||||
, Name(N)
|
||||
, Description(D)
|
||||
, Ctor(C)
|
||||
@@ -123,7 +123,7 @@ class RegisterPassParser : public MachinePassRegistryListener,
|
||||
public cl::parser<typename RegistryClass::FunctionPassCtor> {
|
||||
public:
|
||||
RegisterPassParser() {}
|
||||
~RegisterPassParser() { RegistryClass::setListener(NULL); }
|
||||
~RegisterPassParser() { RegistryClass::setListener(nullptr); }
|
||||
|
||||
void initialize(cl::Option &O) {
|
||||
cl::parser<typename RegistryClass::FunctionPassCtor>::initialize(O);
|
||||
|
@@ -79,7 +79,7 @@ public:
|
||||
|
||||
bool runOnMachineFunction(MachineFunction &MF) override;
|
||||
void getAnalysisUsage(AnalysisUsage &AU) const override;
|
||||
void print(llvm::raw_ostream &OS, const Module *M = 0) const override;
|
||||
void print(llvm::raw_ostream &OS, const Module *M = nullptr) const override;
|
||||
};
|
||||
} //end of namespace llvm
|
||||
|
||||
|
@@ -135,7 +135,7 @@ public:
|
||||
// notifications, we will need to change to using a list.
|
||||
assert(TheDelegate == delegate &&
|
||||
"Only the current delegate can perform reset!");
|
||||
TheDelegate = 0;
|
||||
TheDelegate = nullptr;
|
||||
}
|
||||
|
||||
void setDelegate(Delegate *delegate) {
|
||||
@@ -223,7 +223,7 @@ public:
|
||||
reg_iterator reg_begin(unsigned RegNo) const {
|
||||
return reg_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static reg_iterator reg_end() { return reg_iterator(0); }
|
||||
static reg_iterator reg_end() { return reg_iterator(nullptr); }
|
||||
|
||||
inline iterator_range<reg_iterator> reg_operands(unsigned Reg) const {
|
||||
return iterator_range<reg_iterator>(reg_begin(Reg), reg_end());
|
||||
@@ -236,7 +236,9 @@ public:
|
||||
reg_instr_iterator reg_instr_begin(unsigned RegNo) const {
|
||||
return reg_instr_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static reg_instr_iterator reg_instr_end() { return reg_instr_iterator(0); }
|
||||
static reg_instr_iterator reg_instr_end() {
|
||||
return reg_instr_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<reg_instr_iterator>
|
||||
reg_instructions(unsigned Reg) const {
|
||||
@@ -251,7 +253,9 @@ public:
|
||||
reg_bundle_iterator reg_bundle_begin(unsigned RegNo) const {
|
||||
return reg_bundle_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static reg_bundle_iterator reg_bundle_end() { return reg_bundle_iterator(0); }
|
||||
static reg_bundle_iterator reg_bundle_end() {
|
||||
return reg_bundle_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<reg_bundle_iterator> reg_bundles(unsigned Reg) const {
|
||||
return iterator_range<reg_bundle_iterator>(reg_bundle_begin(Reg),
|
||||
@@ -269,7 +273,9 @@ public:
|
||||
reg_nodbg_iterator reg_nodbg_begin(unsigned RegNo) const {
|
||||
return reg_nodbg_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static reg_nodbg_iterator reg_nodbg_end() { return reg_nodbg_iterator(0); }
|
||||
static reg_nodbg_iterator reg_nodbg_end() {
|
||||
return reg_nodbg_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<reg_nodbg_iterator>
|
||||
reg_nodbg_operands(unsigned Reg) const {
|
||||
@@ -286,7 +292,7 @@ public:
|
||||
return reg_instr_nodbg_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static reg_instr_nodbg_iterator reg_instr_nodbg_end() {
|
||||
return reg_instr_nodbg_iterator(0);
|
||||
return reg_instr_nodbg_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<reg_instr_nodbg_iterator>
|
||||
@@ -304,7 +310,7 @@ public:
|
||||
return reg_bundle_nodbg_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static reg_bundle_nodbg_iterator reg_bundle_nodbg_end() {
|
||||
return reg_bundle_nodbg_iterator(0);
|
||||
return reg_bundle_nodbg_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<reg_bundle_nodbg_iterator>
|
||||
@@ -325,7 +331,7 @@ public:
|
||||
def_iterator def_begin(unsigned RegNo) const {
|
||||
return def_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static def_iterator def_end() { return def_iterator(0); }
|
||||
static def_iterator def_end() { return def_iterator(nullptr); }
|
||||
|
||||
inline iterator_range<def_iterator> def_operands(unsigned Reg) const {
|
||||
return iterator_range<def_iterator>(def_begin(Reg), def_end());
|
||||
@@ -338,7 +344,9 @@ public:
|
||||
def_instr_iterator def_instr_begin(unsigned RegNo) const {
|
||||
return def_instr_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static def_instr_iterator def_instr_end() { return def_instr_iterator(0); }
|
||||
static def_instr_iterator def_instr_end() {
|
||||
return def_instr_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<def_instr_iterator>
|
||||
def_instructions(unsigned Reg) const {
|
||||
@@ -353,7 +361,9 @@ public:
|
||||
def_bundle_iterator def_bundle_begin(unsigned RegNo) const {
|
||||
return def_bundle_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static def_bundle_iterator def_bundle_end() { return def_bundle_iterator(0); }
|
||||
static def_bundle_iterator def_bundle_end() {
|
||||
return def_bundle_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<def_bundle_iterator> def_bundles(unsigned Reg) const {
|
||||
return iterator_range<def_bundle_iterator>(def_bundle_begin(Reg),
|
||||
@@ -379,7 +389,7 @@ public:
|
||||
use_iterator use_begin(unsigned RegNo) const {
|
||||
return use_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static use_iterator use_end() { return use_iterator(0); }
|
||||
static use_iterator use_end() { return use_iterator(nullptr); }
|
||||
|
||||
inline iterator_range<use_iterator> use_operands(unsigned Reg) const {
|
||||
return iterator_range<use_iterator>(use_begin(Reg), use_end());
|
||||
@@ -392,7 +402,9 @@ public:
|
||||
use_instr_iterator use_instr_begin(unsigned RegNo) const {
|
||||
return use_instr_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static use_instr_iterator use_instr_end() { return use_instr_iterator(0); }
|
||||
static use_instr_iterator use_instr_end() {
|
||||
return use_instr_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<use_instr_iterator>
|
||||
use_instructions(unsigned Reg) const {
|
||||
@@ -407,7 +419,9 @@ public:
|
||||
use_bundle_iterator use_bundle_begin(unsigned RegNo) const {
|
||||
return use_bundle_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static use_bundle_iterator use_bundle_end() { return use_bundle_iterator(0); }
|
||||
static use_bundle_iterator use_bundle_end() {
|
||||
return use_bundle_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<use_bundle_iterator> use_bundles(unsigned Reg) const {
|
||||
return iterator_range<use_bundle_iterator>(use_bundle_begin(Reg),
|
||||
@@ -434,7 +448,9 @@ public:
|
||||
use_nodbg_iterator use_nodbg_begin(unsigned RegNo) const {
|
||||
return use_nodbg_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static use_nodbg_iterator use_nodbg_end() { return use_nodbg_iterator(0); }
|
||||
static use_nodbg_iterator use_nodbg_end() {
|
||||
return use_nodbg_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<use_nodbg_iterator>
|
||||
use_nodbg_operands(unsigned Reg) const {
|
||||
@@ -451,7 +467,7 @@ public:
|
||||
return use_instr_nodbg_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static use_instr_nodbg_iterator use_instr_nodbg_end() {
|
||||
return use_instr_nodbg_iterator(0);
|
||||
return use_instr_nodbg_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<use_instr_nodbg_iterator>
|
||||
@@ -469,7 +485,7 @@ public:
|
||||
return use_bundle_nodbg_iterator(getRegUseDefListHead(RegNo));
|
||||
}
|
||||
static use_bundle_nodbg_iterator use_bundle_nodbg_end() {
|
||||
return use_bundle_nodbg_iterator(0);
|
||||
return use_bundle_nodbg_iterator(nullptr);
|
||||
}
|
||||
|
||||
inline iterator_range<use_bundle_nodbg_iterator>
|
||||
@@ -779,7 +795,7 @@ public:
|
||||
if (!ReturnUses) {
|
||||
if (Op) {
|
||||
if (Op->isUse())
|
||||
Op = 0;
|
||||
Op = nullptr;
|
||||
else
|
||||
assert(!Op->isDebug() && "Can't have debug defs");
|
||||
}
|
||||
@@ -797,7 +813,7 @@ public:
|
||||
MachineInstr, ptrdiff_t>::pointer pointer;
|
||||
|
||||
defusechain_iterator(const defusechain_iterator &I) : Op(I.Op) {}
|
||||
defusechain_iterator() : Op(0) {}
|
||||
defusechain_iterator() : Op(nullptr) {}
|
||||
|
||||
bool operator==(const defusechain_iterator &x) const {
|
||||
return Op == x.Op;
|
||||
@@ -807,7 +823,7 @@ public:
|
||||
}
|
||||
|
||||
/// atEnd - return true if this iterator is equal to reg_end() on the value.
|
||||
bool atEnd() const { return Op == 0; }
|
||||
bool atEnd() const { return Op == nullptr; }
|
||||
|
||||
// Iterator traversal: forward iteration only
|
||||
defusechain_iterator &operator++() { // Preincrement
|
||||
@@ -882,7 +898,7 @@ public:
|
||||
if (!ReturnUses) {
|
||||
if (Op) {
|
||||
if (Op->isUse())
|
||||
Op = 0;
|
||||
Op = nullptr;
|
||||
else
|
||||
assert(!Op->isDebug() && "Can't have debug defs");
|
||||
}
|
||||
@@ -900,7 +916,7 @@ public:
|
||||
MachineInstr, ptrdiff_t>::pointer pointer;
|
||||
|
||||
defusechain_instr_iterator(const defusechain_instr_iterator &I) : Op(I.Op){}
|
||||
defusechain_instr_iterator() : Op(0) {}
|
||||
defusechain_instr_iterator() : Op(nullptr) {}
|
||||
|
||||
bool operator==(const defusechain_instr_iterator &x) const {
|
||||
return Op == x.Op;
|
||||
@@ -910,7 +926,7 @@ public:
|
||||
}
|
||||
|
||||
/// atEnd - return true if this iterator is equal to reg_end() on the value.
|
||||
bool atEnd() const { return Op == 0; }
|
||||
bool atEnd() const { return Op == nullptr; }
|
||||
|
||||
// Iterator traversal: forward iteration only
|
||||
defusechain_instr_iterator &operator++() { // Preincrement
|
||||
@@ -957,7 +973,7 @@ class PSetIterator {
|
||||
const int *PSet;
|
||||
unsigned Weight;
|
||||
public:
|
||||
PSetIterator(): PSet(0), Weight(0) {}
|
||||
PSetIterator(): PSet(nullptr), Weight(0) {}
|
||||
PSetIterator(unsigned RegUnit, const MachineRegisterInfo *MRI) {
|
||||
const TargetRegisterInfo *TRI = MRI->getTargetRegisterInfo();
|
||||
if (TargetRegisterInfo::isVirtualRegister(RegUnit)) {
|
||||
@@ -970,7 +986,7 @@ public:
|
||||
Weight = TRI->getRegUnitWeight(RegUnit);
|
||||
}
|
||||
if (*PSet == -1)
|
||||
PSet = 0;
|
||||
PSet = nullptr;
|
||||
}
|
||||
bool isValid() const { return PSet; }
|
||||
|
||||
@@ -982,7 +998,7 @@ public:
|
||||
assert(isValid() && "Invalid PSetIterator.");
|
||||
++PSet;
|
||||
if (*PSet == -1)
|
||||
PSet = 0;
|
||||
PSet = nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -57,7 +57,7 @@ public:
|
||||
/// MachineSSAUpdater constructor. If InsertedPHIs is specified, it will be
|
||||
/// filled in with all PHI Nodes created by rewriting.
|
||||
explicit MachineSSAUpdater(MachineFunction &MF,
|
||||
SmallVectorImpl<MachineInstr*> *InsertedPHIs = 0);
|
||||
SmallVectorImpl<MachineInstr*> *InsertedPHIs = nullptr);
|
||||
~MachineSSAUpdater();
|
||||
|
||||
/// Initialize - Reset this object to get ready for a new set of SSA
|
||||
|
@@ -250,7 +250,7 @@ public:
|
||||
ScheduleDAGInstrs(*C->MF, *C->MLI, *C->MDT, IsPostRA,
|
||||
/*RemoveKillFlags=*/IsPostRA, C->LIS),
|
||||
AA(C->AA), SchedImpl(S), Topo(SUnits, &ExitSU), CurrentTop(),
|
||||
CurrentBottom(), NextClusterPred(NULL), NextClusterSucc(NULL) {
|
||||
CurrentBottom(), NextClusterPred(nullptr), NextClusterSucc(nullptr) {
|
||||
#ifndef NDEBUG
|
||||
NumInstrsScheduled = 0;
|
||||
#endif
|
||||
@@ -377,7 +377,7 @@ protected:
|
||||
public:
|
||||
ScheduleDAGMILive(MachineSchedContext *C, MachineSchedStrategy *S):
|
||||
ScheduleDAGMI(C, S, /*IsPostRA=*/false), RegClassInfo(C->RegClassInfo),
|
||||
DFSResult(0), ShouldTrackPressure(false), RPTracker(RegPressure),
|
||||
DFSResult(nullptr), ShouldTrackPressure(false), RPTracker(RegPressure),
|
||||
TopRPTracker(TopPressure), BotRPTracker(BotPressure)
|
||||
{}
|
||||
|
||||
@@ -628,9 +628,9 @@ public:
|
||||
/// Pending queues extend the ready queues with the same ID and the
|
||||
/// PendingFlag set.
|
||||
SchedBoundary(unsigned ID, const Twine &Name):
|
||||
DAG(0), SchedModel(0), Rem(0), Available(ID, Name+".A"),
|
||||
DAG(nullptr), SchedModel(nullptr), Rem(nullptr), Available(ID, Name+".A"),
|
||||
Pending(ID << LogMaxQID, Name+".P"),
|
||||
HazardRec(0) {
|
||||
HazardRec(nullptr) {
|
||||
reset();
|
||||
}
|
||||
|
||||
|
@@ -154,7 +154,7 @@ public:
|
||||
unsigned InstrHeight;
|
||||
|
||||
TraceBlockInfo() :
|
||||
Pred(0), Succ(0),
|
||||
Pred(nullptr), Succ(nullptr),
|
||||
InstrDepth(~0u), InstrHeight(~0u),
|
||||
HasValidInstrDepths(false), HasValidInstrHeights(false) {}
|
||||
|
||||
|
@@ -54,7 +54,7 @@ public:
|
||||
entry->incRef();
|
||||
}
|
||||
PoolRef& operator=(const PoolRef &r) {
|
||||
assert(entry != 0 && "entry should not be null.");
|
||||
assert(entry != nullptr && "entry should not be null.");
|
||||
PoolEntry *temp = r.entry;
|
||||
temp->incRef();
|
||||
entry->decRef();
|
||||
|
@@ -86,7 +86,7 @@ namespace PBQP {
|
||||
ConservativelyAllocatable,
|
||||
NotProvablyAllocatable } ReductionState;
|
||||
|
||||
NodeMetadata() : RS(Unprocessed), DeniedOpts(0), OptUnsafeEdges(0) {}
|
||||
NodeMetadata() : RS(Unprocessed), DeniedOpts(0), OptUnsafeEdges(nullptr){}
|
||||
~NodeMetadata() { delete[] OptUnsafeEdges; }
|
||||
|
||||
void setup(const Vector& Costs) {
|
||||
|
@@ -59,7 +59,7 @@ class IdentifyingPassPtr {
|
||||
};
|
||||
bool IsInstance;
|
||||
public:
|
||||
IdentifyingPassPtr() : P(0), IsInstance(false) {}
|
||||
IdentifyingPassPtr() : P(nullptr), IsInstance(false) {}
|
||||
IdentifyingPassPtr(AnalysisID IDPtr) : ID(IDPtr), IsInstance(false) {}
|
||||
IdentifyingPassPtr(Pass *InstancePtr) : P(InstancePtr), IsInstance(true) {}
|
||||
|
||||
@@ -151,7 +151,7 @@ public:
|
||||
void setStartStopPasses(AnalysisID Start, AnalysisID Stop) {
|
||||
StartAfter = Start;
|
||||
StopAfter = Stop;
|
||||
Started = (StartAfter == 0);
|
||||
Started = (StartAfter == nullptr);
|
||||
}
|
||||
|
||||
void setDisableVerify(bool Disable) { setOpt(DisableVerify, Disable); }
|
||||
@@ -218,14 +218,14 @@ public:
|
||||
/// Return NULL to select the default (generic) machine scheduler.
|
||||
virtual ScheduleDAGInstrs *
|
||||
createMachineScheduler(MachineSchedContext *C) const {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// Similar to createMachineScheduler but used when postRA machine scheduling
|
||||
/// is enabled.
|
||||
virtual ScheduleDAGInstrs *
|
||||
createPostMachineScheduler(MachineSchedContext *C) const {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -372,7 +372,7 @@ namespace llvm {
|
||||
|
||||
/// createCodeGenPreparePass - Transform the code to expose more pattern
|
||||
/// matching during instruction selection.
|
||||
FunctionPass *createCodeGenPreparePass(const TargetMachine *TM = 0);
|
||||
FunctionPass *createCodeGenPreparePass(const TargetMachine *TM = nullptr);
|
||||
|
||||
/// MachineLoopInfo - This pass is a loop analysis pass.
|
||||
extern char &MachineLoopInfoID;
|
||||
@@ -547,7 +547,7 @@ namespace llvm {
|
||||
/// createMachineVerifierPass - This pass verifies cenerated machine code
|
||||
/// instructions for correctness.
|
||||
///
|
||||
FunctionPass *createMachineVerifierPass(const char *Banner = 0);
|
||||
FunctionPass *createMachineVerifierPass(const char *Banner = nullptr);
|
||||
|
||||
/// createDwarfEHPass - This pass mulches exception handling code into a form
|
||||
/// adapted to code generation. Required if using dwarf exception handling.
|
||||
|
@@ -159,7 +159,7 @@ namespace llvm {
|
||||
|
||||
FunctionPass *
|
||||
createPBQPRegisterAllocator(std::unique_ptr<PBQPBuilder> &builder,
|
||||
char *customPassID = 0);
|
||||
char *customPassID = nullptr);
|
||||
}
|
||||
|
||||
#endif /* LLVM_CODEGEN_REGALLOCPBQP_H */
|
||||
|
@@ -158,7 +158,7 @@ class PressureDiffs {
|
||||
unsigned Size;
|
||||
unsigned Max;
|
||||
public:
|
||||
PressureDiffs(): PDiffArray(0), Size(0), Max(0) {}
|
||||
PressureDiffs(): PDiffArray(nullptr), Size(0), Max(0) {}
|
||||
~PressureDiffs() { free(PDiffArray); }
|
||||
|
||||
void clear() { Size = 0; }
|
||||
@@ -285,12 +285,12 @@ class RegPressureTracker {
|
||||
|
||||
public:
|
||||
RegPressureTracker(IntervalPressure &rp) :
|
||||
MF(0), TRI(0), RCI(0), LIS(0), MBB(0), P(rp), RequireIntervals(true),
|
||||
TrackUntiedDefs(false) {}
|
||||
MF(nullptr), TRI(nullptr), RCI(nullptr), LIS(nullptr), MBB(nullptr), P(rp),
|
||||
RequireIntervals(true), TrackUntiedDefs(false) {}
|
||||
|
||||
RegPressureTracker(RegionPressure &rp) :
|
||||
MF(0), TRI(0), RCI(0), LIS(0), MBB(0), P(rp), RequireIntervals(false),
|
||||
TrackUntiedDefs(false) {}
|
||||
MF(nullptr), TRI(nullptr), RCI(nullptr), LIS(nullptr), MBB(nullptr), P(rp),
|
||||
RequireIntervals(false), TrackUntiedDefs(false) {}
|
||||
|
||||
void reset();
|
||||
|
||||
@@ -318,7 +318,8 @@ public:
|
||||
SlotIndex getCurrSlot() const;
|
||||
|
||||
/// Recede across the previous instruction.
|
||||
bool recede(SmallVectorImpl<unsigned> *LiveUses = 0, PressureDiff *PDiff = 0);
|
||||
bool recede(SmallVectorImpl<unsigned> *LiveUses = nullptr,
|
||||
PressureDiff *PDiff = nullptr);
|
||||
|
||||
/// Advance across the current instruction.
|
||||
bool advance();
|
||||
@@ -393,7 +394,7 @@ public:
|
||||
MaxPressureLimit);
|
||||
|
||||
assert(isBottomClosed() && "Uninitialized pressure tracker");
|
||||
return getMaxUpwardPressureDelta(MI, 0, Delta, CriticalPSets,
|
||||
return getMaxUpwardPressureDelta(MI, nullptr, Delta, CriticalPSets,
|
||||
MaxPressureLimit);
|
||||
}
|
||||
|
||||
|
@@ -42,7 +42,7 @@ class RegScavenger {
|
||||
|
||||
/// Information on scavenged registers (held in a spill slot).
|
||||
struct ScavengedInfo {
|
||||
ScavengedInfo(int FI = -1) : FrameIndex(FI), Reg(0), Restore(NULL) {}
|
||||
ScavengedInfo(int FI = -1) : FrameIndex(FI), Reg(0), Restore(nullptr) {}
|
||||
|
||||
/// A spill slot used for scavenging a register post register allocation.
|
||||
int FrameIndex;
|
||||
@@ -73,7 +73,7 @@ class RegScavenger {
|
||||
|
||||
public:
|
||||
RegScavenger()
|
||||
: MBB(NULL), NumPhysRegs(0), Tracking(false) {}
|
||||
: MBB(nullptr), NumPhysRegs(0), Tracking(false) {}
|
||||
|
||||
/// enterBasicBlock - Start tracking liveness from the begin of the specific
|
||||
/// basic block.
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
|
||||
/// skipTo - Move the internal MBB iterator but do not update register states.
|
||||
void skipTo(MachineBasicBlock::iterator I) {
|
||||
if (I == MachineBasicBlock::iterator(NULL))
|
||||
if (I == MachineBasicBlock::iterator(nullptr))
|
||||
Tracking = false;
|
||||
MBBI = I;
|
||||
}
|
||||
|
@@ -95,7 +95,7 @@ namespace llvm {
|
||||
/// SDep - Construct a null SDep. This is only for use by container
|
||||
/// classes which require default constructors. SUnits may not
|
||||
/// have null SDep edges.
|
||||
SDep() : Dep(0, Data) {}
|
||||
SDep() : Dep(nullptr, Data) {}
|
||||
|
||||
/// SDep - Construct an SDep with the specified values.
|
||||
SDep(SUnit *S, Kind kind, unsigned Reg)
|
||||
@@ -317,46 +317,49 @@ namespace llvm {
|
||||
/// SUnit - Construct an SUnit for pre-regalloc scheduling to represent
|
||||
/// an SDNode and any nodes flagged to it.
|
||||
SUnit(SDNode *node, unsigned nodenum)
|
||||
: Node(node), Instr(0), OrigNode(0), SchedClass(0), NodeNum(nodenum),
|
||||
NodeQueueId(0), NumPreds(0), NumSuccs(0), NumPredsLeft(0),
|
||||
NumSuccsLeft(0), WeakPredsLeft(0), WeakSuccsLeft(0), NumRegDefsLeft(0),
|
||||
Latency(0), isVRegCycle(false), isCall(false), isCallOp(false),
|
||||
isTwoAddress(false), isCommutable(false), hasPhysRegUses(false),
|
||||
hasPhysRegDefs(false), hasPhysRegClobbers(false), isPending(false),
|
||||
isAvailable(false), isScheduled(false), isScheduleHigh(false),
|
||||
isScheduleLow(false), isCloned(false), isUnbuffered(false),
|
||||
hasReservedResource(false), SchedulingPref(Sched::None),
|
||||
isDepthCurrent(false), isHeightCurrent(false), Depth(0), Height(0),
|
||||
TopReadyCycle(0), BotReadyCycle(0), CopyDstRC(NULL), CopySrcRC(NULL) {}
|
||||
: Node(node), Instr(nullptr), OrigNode(nullptr), SchedClass(nullptr),
|
||||
NodeNum(nodenum), NodeQueueId(0), NumPreds(0), NumSuccs(0),
|
||||
NumPredsLeft(0), NumSuccsLeft(0), WeakPredsLeft(0), WeakSuccsLeft(0),
|
||||
NumRegDefsLeft(0), Latency(0), isVRegCycle(false), isCall(false),
|
||||
isCallOp(false), isTwoAddress(false), isCommutable(false),
|
||||
hasPhysRegUses(false), hasPhysRegDefs(false), hasPhysRegClobbers(false),
|
||||
isPending(false), isAvailable(false), isScheduled(false),
|
||||
isScheduleHigh(false), isScheduleLow(false), isCloned(false),
|
||||
isUnbuffered(false), hasReservedResource(false),
|
||||
SchedulingPref(Sched::None), isDepthCurrent(false),
|
||||
isHeightCurrent(false), Depth(0), Height(0), TopReadyCycle(0),
|
||||
BotReadyCycle(0), CopyDstRC(nullptr), CopySrcRC(nullptr) {}
|
||||
|
||||
/// SUnit - Construct an SUnit for post-regalloc scheduling to represent
|
||||
/// a MachineInstr.
|
||||
SUnit(MachineInstr *instr, unsigned nodenum)
|
||||
: Node(0), Instr(instr), OrigNode(0), SchedClass(0), NodeNum(nodenum),
|
||||
NodeQueueId(0), NumPreds(0), NumSuccs(0), NumPredsLeft(0),
|
||||
NumSuccsLeft(0), WeakPredsLeft(0), WeakSuccsLeft(0), NumRegDefsLeft(0),
|
||||
Latency(0), isVRegCycle(false), isCall(false), isCallOp(false),
|
||||
isTwoAddress(false), isCommutable(false), hasPhysRegUses(false),
|
||||
hasPhysRegDefs(false), hasPhysRegClobbers(false), isPending(false),
|
||||
isAvailable(false), isScheduled(false), isScheduleHigh(false),
|
||||
isScheduleLow(false), isCloned(false), isUnbuffered(false),
|
||||
hasReservedResource(false), SchedulingPref(Sched::None),
|
||||
isDepthCurrent(false), isHeightCurrent(false), Depth(0), Height(0),
|
||||
TopReadyCycle(0), BotReadyCycle(0), CopyDstRC(NULL), CopySrcRC(NULL) {}
|
||||
: Node(nullptr), Instr(instr), OrigNode(nullptr), SchedClass(nullptr),
|
||||
NodeNum(nodenum), NodeQueueId(0), NumPreds(0), NumSuccs(0),
|
||||
NumPredsLeft(0), NumSuccsLeft(0), WeakPredsLeft(0), WeakSuccsLeft(0),
|
||||
NumRegDefsLeft(0), Latency(0), isVRegCycle(false), isCall(false),
|
||||
isCallOp(false), isTwoAddress(false), isCommutable(false),
|
||||
hasPhysRegUses(false), hasPhysRegDefs(false), hasPhysRegClobbers(false),
|
||||
isPending(false), isAvailable(false), isScheduled(false),
|
||||
isScheduleHigh(false), isScheduleLow(false), isCloned(false),
|
||||
isUnbuffered(false), hasReservedResource(false),
|
||||
SchedulingPref(Sched::None), isDepthCurrent(false),
|
||||
isHeightCurrent(false), Depth(0), Height(0), TopReadyCycle(0),
|
||||
BotReadyCycle(0), CopyDstRC(nullptr), CopySrcRC(nullptr) {}
|
||||
|
||||
/// SUnit - Construct a placeholder SUnit.
|
||||
SUnit()
|
||||
: Node(0), Instr(0), OrigNode(0), SchedClass(0), NodeNum(BoundaryID),
|
||||
NodeQueueId(0), NumPreds(0), NumSuccs(0), NumPredsLeft(0),
|
||||
NumSuccsLeft(0), WeakPredsLeft(0), WeakSuccsLeft(0), NumRegDefsLeft(0),
|
||||
Latency(0), isVRegCycle(false), isCall(false), isCallOp(false),
|
||||
isTwoAddress(false), isCommutable(false), hasPhysRegUses(false),
|
||||
hasPhysRegDefs(false), hasPhysRegClobbers(false), isPending(false),
|
||||
isAvailable(false), isScheduled(false), isScheduleHigh(false),
|
||||
isScheduleLow(false), isCloned(false), isUnbuffered(false),
|
||||
hasReservedResource(false), SchedulingPref(Sched::None),
|
||||
isDepthCurrent(false), isHeightCurrent(false), Depth(0), Height(0),
|
||||
TopReadyCycle(0), BotReadyCycle(0), CopyDstRC(NULL), CopySrcRC(NULL) {}
|
||||
: Node(nullptr), Instr(nullptr), OrigNode(nullptr), SchedClass(nullptr),
|
||||
NodeNum(BoundaryID), NodeQueueId(0), NumPreds(0), NumSuccs(0),
|
||||
NumPredsLeft(0), NumSuccsLeft(0), WeakPredsLeft(0), WeakSuccsLeft(0),
|
||||
NumRegDefsLeft(0), Latency(0), isVRegCycle(false), isCall(false),
|
||||
isCallOp(false), isTwoAddress(false), isCommutable(false),
|
||||
hasPhysRegUses(false), hasPhysRegDefs(false), hasPhysRegClobbers(false),
|
||||
isPending(false), isAvailable(false), isScheduled(false),
|
||||
isScheduleHigh(false), isScheduleLow(false), isCloned(false),
|
||||
isUnbuffered(false), hasReservedResource(false),
|
||||
SchedulingPref(Sched::None), isDepthCurrent(false),
|
||||
isHeightCurrent(false), Depth(0), Height(0), TopReadyCycle(0),
|
||||
BotReadyCycle(0), CopyDstRC(nullptr), CopySrcRC(nullptr) {}
|
||||
|
||||
/// \brief Boundary nodes are placeholders for the boundary of the
|
||||
/// scheduling region.
|
||||
|
@@ -158,7 +158,7 @@ namespace llvm {
|
||||
const MachineDominatorTree &mdt,
|
||||
bool IsPostRAFlag,
|
||||
bool RemoveKillFlags = false,
|
||||
LiveIntervals *LIS = 0);
|
||||
LiveIntervals *LIS = nullptr);
|
||||
|
||||
virtual ~ScheduleDAGInstrs() {}
|
||||
|
||||
@@ -206,8 +206,9 @@ namespace llvm {
|
||||
|
||||
/// buildSchedGraph - Build SUnits from the MachineBasicBlock that we are
|
||||
/// input.
|
||||
void buildSchedGraph(AliasAnalysis *AA, RegPressureTracker *RPTracker = 0,
|
||||
PressureDiffs *PDiffs = 0);
|
||||
void buildSchedGraph(AliasAnalysis *AA,
|
||||
RegPressureTracker *RPTracker = nullptr,
|
||||
PressureDiffs *PDiffs = nullptr);
|
||||
|
||||
/// addSchedBarrierDeps - Add dependencies from instructions in the current
|
||||
/// list of instructions being scheduled to scheduling barrier. We want to
|
||||
@@ -259,10 +260,10 @@ namespace llvm {
|
||||
/// newSUnit - Creates a new SUnit and return a ptr to it.
|
||||
inline SUnit *ScheduleDAGInstrs::newSUnit(MachineInstr *MI) {
|
||||
#ifndef NDEBUG
|
||||
const SUnit *Addr = SUnits.empty() ? 0 : &SUnits[0];
|
||||
const SUnit *Addr = SUnits.empty() ? nullptr : &SUnits[0];
|
||||
#endif
|
||||
SUnits.push_back(SUnit(MI, (unsigned)SUnits.size()));
|
||||
assert((Addr == 0 || Addr == &SUnits[0]) &&
|
||||
assert((Addr == nullptr || Addr == &SUnits[0]) &&
|
||||
"SUnits std::vector reallocated on the fly!");
|
||||
SUnits.back().OrigNode = &SUnits.back();
|
||||
return &SUnits.back();
|
||||
@@ -272,7 +273,7 @@ namespace llvm {
|
||||
inline SUnit *ScheduleDAGInstrs::getSUnit(MachineInstr *MI) const {
|
||||
DenseMap<MachineInstr*, SUnit*>::const_iterator I = MISUnitMap.find(MI);
|
||||
if (I == MISUnitMap.end())
|
||||
return 0;
|
||||
return nullptr;
|
||||
return I->second;
|
||||
}
|
||||
} // namespace llvm
|
||||
|
@@ -47,7 +47,7 @@ class ScoreboardHazardRecognizer : public ScheduleHazardRecognizer {
|
||||
// Indices into the Scoreboard that represent the current cycle.
|
||||
size_t Head;
|
||||
public:
|
||||
Scoreboard():Data(NULL), Depth(0), Head(0) { }
|
||||
Scoreboard():Data(nullptr), Depth(0), Head(0) { }
|
||||
~Scoreboard() {
|
||||
delete[] Data;
|
||||
}
|
||||
@@ -62,7 +62,7 @@ class ScoreboardHazardRecognizer : public ScheduleHazardRecognizer {
|
||||
}
|
||||
|
||||
void reset(size_t d = 1) {
|
||||
if (Data == NULL) {
|
||||
if (!Data) {
|
||||
Depth = d;
|
||||
Data = new unsigned[Depth];
|
||||
}
|
||||
|
@@ -100,7 +100,7 @@ class SDValue {
|
||||
SDNode *Node; // The node defining the value we are using.
|
||||
unsigned ResNo; // Which return value of the node we are using.
|
||||
public:
|
||||
SDValue() : Node(0), ResNo(0) {}
|
||||
SDValue() : Node(nullptr), ResNo(0) {}
|
||||
SDValue(SDNode *node, unsigned resno) : Node(node), ResNo(resno) {}
|
||||
|
||||
/// get the index which selects a specific result in the SDNode
|
||||
@@ -234,7 +234,7 @@ class SDUse {
|
||||
void operator=(const SDUse &U) LLVM_DELETED_FUNCTION;
|
||||
|
||||
public:
|
||||
SDUse() : Val(), User(NULL), Prev(NULL), Next(NULL) {}
|
||||
SDUse() : Val(), User(nullptr), Prev(nullptr), Next(nullptr) {}
|
||||
|
||||
/// Normally SDUse will just implicitly convert to an SDValue that it holds.
|
||||
operator const SDValue&() const { return Val; }
|
||||
@@ -408,7 +408,7 @@ public:
|
||||
|
||||
/// use_empty - Return true if there are no uses of this node.
|
||||
///
|
||||
bool use_empty() const { return UseList == NULL; }
|
||||
bool use_empty() const { return UseList == nullptr; }
|
||||
|
||||
/// hasOneUse - Return true if there is exactly one use of this node.
|
||||
///
|
||||
@@ -458,7 +458,7 @@ public:
|
||||
SDUse, ptrdiff_t>::pointer pointer;
|
||||
|
||||
use_iterator(const use_iterator &I) : Op(I.Op) {}
|
||||
use_iterator() : Op(0) {}
|
||||
use_iterator() : Op(nullptr) {}
|
||||
|
||||
bool operator==(const use_iterator &x) const {
|
||||
return Op == x.Op;
|
||||
@@ -468,7 +468,7 @@ public:
|
||||
}
|
||||
|
||||
/// atEnd - return true if this iterator is at the end of uses list.
|
||||
bool atEnd() const { return Op == 0; }
|
||||
bool atEnd() const { return Op == nullptr; }
|
||||
|
||||
// Iterator traversal: forward iteration only.
|
||||
use_iterator &operator++() { // Preincrement
|
||||
@@ -506,7 +506,7 @@ public:
|
||||
return use_iterator(UseList);
|
||||
}
|
||||
|
||||
static use_iterator use_end() { return use_iterator(0); }
|
||||
static use_iterator use_end() { return use_iterator(nullptr); }
|
||||
|
||||
inline iterator_range<use_iterator> uses() {
|
||||
return iterator_range<use_iterator>(use_begin(), use_end());
|
||||
@@ -586,7 +586,7 @@ public:
|
||||
if (getNumOperands() != 0 &&
|
||||
getOperand(getNumOperands()-1).getValueType() == MVT::Glue)
|
||||
return getOperand(getNumOperands()-1).getNode();
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// If this is a pseudo op, like copyfromreg, look to see if there is a
|
||||
@@ -611,7 +611,7 @@ public:
|
||||
for (use_iterator UI = use_begin(), UE = use_end(); UI != UE; ++UI)
|
||||
if (UI.getUse().get().getValueType() == MVT::Glue)
|
||||
return *UI;
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// getNumValues - Return the number of values defined/returned by this
|
||||
@@ -644,12 +644,12 @@ public:
|
||||
|
||||
/// getOperationName - Return the opcode of this operation for printing.
|
||||
///
|
||||
std::string getOperationName(const SelectionDAG *G = 0) const;
|
||||
std::string getOperationName(const SelectionDAG *G = nullptr) const;
|
||||
static const char* getIndexedModeName(ISD::MemIndexedMode AM);
|
||||
void print_types(raw_ostream &OS, const SelectionDAG *G) const;
|
||||
void print_details(raw_ostream &OS, const SelectionDAG *G) const;
|
||||
void print(raw_ostream &OS, const SelectionDAG *G = 0) const;
|
||||
void printr(raw_ostream &OS, const SelectionDAG *G = 0) const;
|
||||
void print(raw_ostream &OS, const SelectionDAG *G = nullptr) const;
|
||||
void printr(raw_ostream &OS, const SelectionDAG *G = nullptr) const;
|
||||
|
||||
/// printrFull - Print a SelectionDAG node and all children down to
|
||||
/// the leaves. The given SelectionDAG allows target-specific nodes
|
||||
@@ -657,7 +657,7 @@ public:
|
||||
/// print the whole DAG, including children that appear multiple
|
||||
/// times.
|
||||
///
|
||||
void printrFull(raw_ostream &O, const SelectionDAG *G = 0) const;
|
||||
void printrFull(raw_ostream &O, const SelectionDAG *G = nullptr) const;
|
||||
|
||||
/// printrWithDepth - Print a SelectionDAG node and children up to
|
||||
/// depth "depth." The given SelectionDAG allows target-specific
|
||||
@@ -665,7 +665,7 @@ public:
|
||||
/// will print children that appear multiple times wherever they are
|
||||
/// used.
|
||||
///
|
||||
void printrWithDepth(raw_ostream &O, const SelectionDAG *G = 0,
|
||||
void printrWithDepth(raw_ostream &O, const SelectionDAG *G = nullptr,
|
||||
unsigned depth = 100) const;
|
||||
|
||||
|
||||
@@ -690,14 +690,15 @@ public:
|
||||
/// Unlike dumpr, this will print the whole DAG, including children
|
||||
/// that appear multiple times.
|
||||
///
|
||||
void dumprFull(const SelectionDAG *G = 0) const;
|
||||
void dumprFull(const SelectionDAG *G = nullptr) const;
|
||||
|
||||
/// dumprWithDepth - printrWithDepth to dbgs(). The given
|
||||
/// SelectionDAG allows target-specific nodes to be printed in
|
||||
/// human-readable form. Unlike dumpr, this will print children
|
||||
/// that appear multiple times wherever they are used.
|
||||
///
|
||||
void dumprWithDepth(const SelectionDAG *G = 0, unsigned depth = 100) const;
|
||||
void dumprWithDepth(const SelectionDAG *G = nullptr,
|
||||
unsigned depth = 100) const;
|
||||
|
||||
/// Profile - Gather unique data for the node.
|
||||
///
|
||||
@@ -717,8 +718,8 @@ protected:
|
||||
const SDValue *Ops, unsigned NumOps)
|
||||
: NodeType(Opc), OperandsNeedDelete(true), HasDebugValue(false),
|
||||
SubclassData(0), NodeId(-1),
|
||||
OperandList(NumOps ? new SDUse[NumOps] : 0),
|
||||
ValueList(VTs.VTs), UseList(NULL),
|
||||
OperandList(NumOps ? new SDUse[NumOps] : nullptr),
|
||||
ValueList(VTs.VTs), UseList(nullptr),
|
||||
NumOperands(NumOps), NumValues(VTs.NumVTs),
|
||||
debugLoc(dl), IROrder(Order) {
|
||||
for (unsigned i = 0; i != NumOps; ++i) {
|
||||
@@ -732,9 +733,9 @@ protected:
|
||||
/// set later with InitOperands.
|
||||
SDNode(unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs)
|
||||
: NodeType(Opc), OperandsNeedDelete(false), HasDebugValue(false),
|
||||
SubclassData(0), NodeId(-1), OperandList(0),
|
||||
ValueList(VTs.VTs), UseList(NULL), NumOperands(0), NumValues(VTs.NumVTs),
|
||||
debugLoc(dl), IROrder(Order) {}
|
||||
SubclassData(0), NodeId(-1), OperandList(nullptr), ValueList(VTs.VTs),
|
||||
UseList(nullptr), NumOperands(0), NumValues(VTs.NumVTs), debugLoc(dl),
|
||||
IROrder(Order) {}
|
||||
|
||||
/// InitOperands - Initialize the operands list of this with 1 operand.
|
||||
void InitOperands(SDUse *Ops, const SDValue &Op0) {
|
||||
@@ -819,7 +820,7 @@ private:
|
||||
int IROrder;
|
||||
|
||||
public:
|
||||
SDLoc() : Ptr(NULL), IROrder(0) {}
|
||||
SDLoc() : Ptr(nullptr), IROrder(0) {}
|
||||
SDLoc(const SDNode *N) : Ptr(N), IROrder(-1) {
|
||||
assert(N && "null SDNode");
|
||||
}
|
||||
@@ -830,14 +831,14 @@ public:
|
||||
assert(Order >= 0 && "bad IROrder");
|
||||
}
|
||||
unsigned getIROrder() {
|
||||
if (IROrder >= 0 || Ptr == NULL) {
|
||||
if (IROrder >= 0 || Ptr == nullptr) {
|
||||
return (unsigned)IROrder;
|
||||
}
|
||||
const SDNode *N = (const SDNode*)(Ptr);
|
||||
return N->getIROrder();
|
||||
}
|
||||
DebugLoc getDebugLoc() {
|
||||
if (Ptr == NULL) {
|
||||
if (!Ptr) {
|
||||
return DebugLoc();
|
||||
}
|
||||
if (IROrder >= 0) {
|
||||
@@ -1834,7 +1835,7 @@ public:
|
||||
private:
|
||||
friend class SelectionDAG;
|
||||
MachineSDNode(unsigned Opc, unsigned Order, const DebugLoc DL, SDVTList VTs)
|
||||
: SDNode(Opc, Order, DL, VTs), MemRefs(0), MemRefsEnd(0) {}
|
||||
: SDNode(Opc, Order, DL, VTs), MemRefs(nullptr), MemRefsEnd(nullptr) {}
|
||||
|
||||
/// LocalOperands - Operands for this instruction, if they fit here. If
|
||||
/// they don't, this field is unused.
|
||||
|
@@ -147,11 +147,11 @@ namespace llvm {
|
||||
};
|
||||
|
||||
/// Construct an invalid index.
|
||||
SlotIndex() : lie(0, 0) {}
|
||||
SlotIndex() : lie(nullptr, 0) {}
|
||||
|
||||
// Construct a new slot index from the given one, and set the slot.
|
||||
SlotIndex(const SlotIndex &li, Slot s) : lie(li.listEntry(), unsigned(s)) {
|
||||
assert(lie.getPointer() != 0 &&
|
||||
assert(lie.getPointer() != nullptr &&
|
||||
"Attempt to construct index with 0 pointer.");
|
||||
}
|
||||
|
||||
@@ -421,7 +421,7 @@ namespace llvm {
|
||||
/// Returns the instruction for the given index, or null if the given
|
||||
/// index has no instruction associated with it.
|
||||
MachineInstr* getInstructionFromIndex(SlotIndex index) const {
|
||||
return index.isValid() ? index.listEntry()->getInstr() : 0;
|
||||
return index.isValid() ? index.listEntry()->getInstr() : nullptr;
|
||||
}
|
||||
|
||||
/// Returns the next non-null index, if one exists.
|
||||
@@ -551,14 +551,14 @@ namespace llvm {
|
||||
|
||||
// Check that we don't cross the boundary into this block.
|
||||
if (itr->first < end)
|
||||
return 0;
|
||||
return nullptr;
|
||||
|
||||
itr = std::prev(itr);
|
||||
|
||||
if (itr->first <= start)
|
||||
return itr->second;
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// Insert the given machine instruction into the mapping. Returns the
|
||||
@@ -574,7 +574,7 @@ namespace llvm {
|
||||
// affected by debug information.
|
||||
assert(!mi->isDebugValue() && "Cannot number DBG_VALUE instructions.");
|
||||
|
||||
assert(mi->getParent() != 0 && "Instr must be added to function.");
|
||||
assert(mi->getParent() != nullptr && "Instr must be added to function.");
|
||||
|
||||
// Get the entries where mi should be inserted.
|
||||
IndexList::iterator prevItr, nextItr;
|
||||
@@ -615,7 +615,7 @@ namespace llvm {
|
||||
IndexListEntry *miEntry(mi2iItr->second.listEntry());
|
||||
assert(miEntry->getInstr() == mi && "Instruction indexes broken.");
|
||||
// FIXME: Eventually we want to actually delete these indexes.
|
||||
miEntry->setInstr(0);
|
||||
miEntry->setInstr(nullptr);
|
||||
mi2iMap.erase(mi2iItr);
|
||||
}
|
||||
}
|
||||
@@ -640,15 +640,15 @@ namespace llvm {
|
||||
MachineFunction::iterator nextMBB =
|
||||
std::next(MachineFunction::iterator(mbb));
|
||||
|
||||
IndexListEntry *startEntry = 0;
|
||||
IndexListEntry *endEntry = 0;
|
||||
IndexListEntry *startEntry = nullptr;
|
||||
IndexListEntry *endEntry = nullptr;
|
||||
IndexList::iterator newItr;
|
||||
if (nextMBB == mbb->getParent()->end()) {
|
||||
startEntry = &indexList.back();
|
||||
endEntry = createEntry(0, 0);
|
||||
endEntry = createEntry(nullptr, 0);
|
||||
newItr = indexList.insertAfter(startEntry, endEntry);
|
||||
} else {
|
||||
startEntry = createEntry(0, 0);
|
||||
startEntry = createEntry(nullptr, 0);
|
||||
endEntry = getMBBStartIdx(nextMBB).listEntry();
|
||||
newItr = indexList.insert(endEntry, startEntry);
|
||||
}
|
||||
|
@@ -140,7 +140,7 @@ private:
|
||||
uint64_t ID;
|
||||
LocationVec Locations;
|
||||
LiveOutVec LiveOuts;
|
||||
CallsiteInfo() : CSOffsetExpr(0), ID(0) {}
|
||||
CallsiteInfo() : CSOffsetExpr(nullptr), ID(0) {}
|
||||
CallsiteInfo(const MCExpr *CSOffsetExpr, uint64_t ID,
|
||||
LocationVec &Locations, LiveOutVec &LiveOuts)
|
||||
: CSOffsetExpr(CSOffsetExpr), ID(ID), Locations(Locations),
|
||||
|
@@ -105,11 +105,12 @@ private:
|
||||
|
||||
public:
|
||||
static char ID; // Pass identification, replacement for typeid.
|
||||
StackProtector() : FunctionPass(ID), TM(0), TLI(0), SSPBufferSize(0) {
|
||||
StackProtector()
|
||||
: FunctionPass(ID), TM(nullptr), TLI(nullptr), SSPBufferSize(0) {
|
||||
initializeStackProtectorPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
StackProtector(const TargetMachine *TM)
|
||||
: FunctionPass(ID), TM(TM), TLI(0), Trip(TM->getTargetTriple()),
|
||||
: FunctionPass(ID), TM(TM), TLI(nullptr), Trip(TM->getTargetTriple()),
|
||||
SSPBufferSize(8) {
|
||||
initializeStackProtectorPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ class TargetSchedModel {
|
||||
unsigned MicroOpFactor; // Multiply to normalize microops to resource units.
|
||||
unsigned ResourceLCM; // Resource units per cycle. Latency normalization factor.
|
||||
public:
|
||||
TargetSchedModel(): STI(0), TII(0) {}
|
||||
TargetSchedModel(): STI(nullptr), TII(nullptr) {}
|
||||
|
||||
/// \brief Initialize the machine model for instruction scheduling.
|
||||
///
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
const InstrItineraryData *getInstrItineraries() const {
|
||||
if (hasInstrItineraries())
|
||||
return &InstrItins;
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// \brief Identify the processor corresponding to the current subtarget.
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
|
||||
/// \brief Return the number of issue slots required for this MI.
|
||||
unsigned getNumMicroOps(const MachineInstr *MI,
|
||||
const MCSchedClassDesc *SC = 0) const;
|
||||
const MCSchedClassDesc *SC = nullptr) const;
|
||||
|
||||
/// \brief Get the number of kinds of resources for this target.
|
||||
unsigned getNumProcResourceKinds() const {
|
||||
|
@@ -177,7 +177,7 @@ namespace llvm {
|
||||
/// the specified stack slot
|
||||
void assignVirt2StackSlot(unsigned virtReg, int frameIndex);
|
||||
|
||||
void print(raw_ostream &OS, const Module* M = 0) const override;
|
||||
void print(raw_ostream &OS, const Module* M = nullptr) const override;
|
||||
void dump() const;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user