forked from OSchip/llvm-project
[llvm] Remove redundaunt virtual specifiers (NFC)
Identified with modernize-use-override.
This commit is contained in:
parent
3650615fb2
commit
b5188591a0
|
@ -39,14 +39,14 @@ public:
|
||||||
class CSEConfigFull : public CSEConfigBase {
|
class CSEConfigFull : public CSEConfigBase {
|
||||||
public:
|
public:
|
||||||
virtual ~CSEConfigFull() = default;
|
virtual ~CSEConfigFull() = default;
|
||||||
virtual bool shouldCSEOpc(unsigned Opc) override;
|
bool shouldCSEOpc(unsigned Opc) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Commonly used for O0 config.
|
// Commonly used for O0 config.
|
||||||
class CSEConfigConstantOnly : public CSEConfigBase {
|
class CSEConfigConstantOnly : public CSEConfigBase {
|
||||||
public:
|
public:
|
||||||
virtual ~CSEConfigConstantOnly() = default;
|
virtual ~CSEConfigConstantOnly() = default;
|
||||||
virtual bool shouldCSEOpc(unsigned Opc) override;
|
bool shouldCSEOpc(unsigned Opc) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Returns the standard expected CSEConfig for the given optimization level.
|
// Returns the standard expected CSEConfig for the given optimization level.
|
||||||
|
|
|
@ -590,7 +590,7 @@ private:
|
||||||
assert(irt && "irt is null!");
|
assert(irt && "irt is null!");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void addSuccessorWithProb(
|
void addSuccessorWithProb(
|
||||||
MachineBasicBlock *Src, MachineBasicBlock *Dst,
|
MachineBasicBlock *Src, MachineBasicBlock *Dst,
|
||||||
BranchProbability Prob = BranchProbability::getUnknown()) override {
|
BranchProbability Prob = BranchProbability::getUnknown()) override {
|
||||||
IRT->addSuccessorWithProb(Src, Dst, Prob);
|
IRT->addSuccessorWithProb(Src, Dst, Prob);
|
||||||
|
|
|
@ -32,15 +32,12 @@ public:
|
||||||
|
|
||||||
template <typename ChildType>
|
template <typename ChildType>
|
||||||
class NullEnumerator : public IPDBEnumChildren<ChildType> {
|
class NullEnumerator : public IPDBEnumChildren<ChildType> {
|
||||||
virtual uint32_t getChildCount() const override { return 0; }
|
uint32_t getChildCount() const override { return 0; }
|
||||||
virtual std::unique_ptr<ChildType>
|
std::unique_ptr<ChildType> getChildAtIndex(uint32_t Index) const override {
|
||||||
getChildAtIndex(uint32_t Index) const override {
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
virtual std::unique_ptr<ChildType> getNext() override {
|
std::unique_ptr<ChildType> getNext() override { return nullptr; }
|
||||||
return nullptr;
|
void reset() override {}
|
||||||
}
|
|
||||||
virtual void reset() override {}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace pdb
|
} // end namespace pdb
|
||||||
|
|
|
@ -381,11 +381,11 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Create a representation of the IR.
|
// Create a representation of the IR.
|
||||||
virtual void generateIRRepresentation(Any IR, StringRef PassID,
|
void generateIRRepresentation(Any IR, StringRef PassID,
|
||||||
IRDataT<EmptyData> &Output) override;
|
IRDataT<EmptyData> &Output) override;
|
||||||
|
|
||||||
// Called when an interesting IR has changed.
|
// Called when an interesting IR has changed.
|
||||||
virtual void handleAfter(StringRef PassID, std::string &Name,
|
void handleAfter(StringRef PassID, std::string &Name,
|
||||||
const IRDataT<EmptyData> &Before,
|
const IRDataT<EmptyData> &Before,
|
||||||
const IRDataT<EmptyData> &After, Any) override;
|
const IRDataT<EmptyData> &After, Any) override;
|
||||||
|
|
||||||
|
|
|
@ -585,14 +585,14 @@ public:
|
||||||
: SampleProfileReader(std::move(B), C, Format) {}
|
: SampleProfileReader(std::move(B), C, Format) {}
|
||||||
|
|
||||||
/// Read and validate the file header.
|
/// Read and validate the file header.
|
||||||
virtual std::error_code readHeader() override;
|
std::error_code readHeader() override;
|
||||||
|
|
||||||
/// Read sample profiles from the associated file.
|
/// Read sample profiles from the associated file.
|
||||||
std::error_code readImpl() override;
|
std::error_code readImpl() override;
|
||||||
|
|
||||||
/// It includes all the names that have samples either in outline instance
|
/// It includes all the names that have samples either in outline instance
|
||||||
/// or inline instance.
|
/// or inline instance.
|
||||||
virtual std::vector<StringRef> *getNameTable() override { return &NameTable; }
|
std::vector<StringRef> *getNameTable() override { return &NameTable; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/// Read a numeric value of type T from the profile.
|
/// Read a numeric value of type T from the profile.
|
||||||
|
@ -656,7 +656,7 @@ private:
|
||||||
|
|
||||||
class SampleProfileReaderRawBinary : public SampleProfileReaderBinary {
|
class SampleProfileReaderRawBinary : public SampleProfileReaderBinary {
|
||||||
private:
|
private:
|
||||||
virtual std::error_code verifySPMagic(uint64_t Magic) override;
|
std::error_code verifySPMagic(uint64_t Magic) override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SampleProfileReaderRawBinary(std::unique_ptr<MemoryBuffer> B, LLVMContext &C,
|
SampleProfileReaderRawBinary(std::unique_ptr<MemoryBuffer> B, LLVMContext &C,
|
||||||
|
@ -710,14 +710,14 @@ protected:
|
||||||
std::error_code readCSNameTableSec();
|
std::error_code readCSNameTableSec();
|
||||||
std::error_code readProfileSymbolList();
|
std::error_code readProfileSymbolList();
|
||||||
|
|
||||||
virtual std::error_code readHeader() override;
|
std::error_code readHeader() override;
|
||||||
virtual std::error_code verifySPMagic(uint64_t Magic) override = 0;
|
std::error_code verifySPMagic(uint64_t Magic) override = 0;
|
||||||
virtual std::error_code readOneSection(const uint8_t *Start, uint64_t Size,
|
virtual std::error_code readOneSection(const uint8_t *Start, uint64_t Size,
|
||||||
const SecHdrTableEntry &Entry);
|
const SecHdrTableEntry &Entry);
|
||||||
// placeholder for subclasses to dispatch their own section readers.
|
// placeholder for subclasses to dispatch their own section readers.
|
||||||
virtual std::error_code readCustomSection(const SecHdrTableEntry &Entry) = 0;
|
virtual std::error_code readCustomSection(const SecHdrTableEntry &Entry) = 0;
|
||||||
virtual ErrorOr<StringRef> readStringFromTable() override;
|
ErrorOr<StringRef> readStringFromTable() override;
|
||||||
virtual ErrorOr<SampleContext> readSampleContextFromTable() override;
|
ErrorOr<SampleContext> readSampleContextFromTable() override;
|
||||||
ErrorOr<SampleContextFrames> readContextFromTable();
|
ErrorOr<SampleContextFrames> readContextFromTable();
|
||||||
|
|
||||||
std::unique_ptr<ProfileSymbolList> ProfSymList;
|
std::unique_ptr<ProfileSymbolList> ProfSymList;
|
||||||
|
@ -770,27 +770,26 @@ public:
|
||||||
uint64_t getSectionSize(SecType Type);
|
uint64_t getSectionSize(SecType Type);
|
||||||
/// Get the total size of header and all sections.
|
/// Get the total size of header and all sections.
|
||||||
uint64_t getFileSize();
|
uint64_t getFileSize();
|
||||||
virtual bool dumpSectionInfo(raw_ostream &OS = dbgs()) override;
|
bool dumpSectionInfo(raw_ostream &OS = dbgs()) override;
|
||||||
|
|
||||||
/// Collect functions with definitions in Module M. Return true if
|
/// Collect functions with definitions in Module M. Return true if
|
||||||
/// the reader has been given a module.
|
/// the reader has been given a module.
|
||||||
bool collectFuncsFromModule() override;
|
bool collectFuncsFromModule() override;
|
||||||
|
|
||||||
/// Return whether names in the profile are all MD5 numbers.
|
/// Return whether names in the profile are all MD5 numbers.
|
||||||
virtual bool useMD5() override { return MD5StringBuf.get(); }
|
bool useMD5() override { return MD5StringBuf.get(); }
|
||||||
|
|
||||||
virtual std::unique_ptr<ProfileSymbolList> getProfileSymbolList() override {
|
std::unique_ptr<ProfileSymbolList> getProfileSymbolList() override {
|
||||||
return std::move(ProfSymList);
|
return std::move(ProfSymList);
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void setSkipFlatProf(bool Skip) override { SkipFlatProf = Skip; }
|
void setSkipFlatProf(bool Skip) override { SkipFlatProf = Skip; }
|
||||||
};
|
};
|
||||||
|
|
||||||
class SampleProfileReaderExtBinary : public SampleProfileReaderExtBinaryBase {
|
class SampleProfileReaderExtBinary : public SampleProfileReaderExtBinaryBase {
|
||||||
private:
|
private:
|
||||||
virtual std::error_code verifySPMagic(uint64_t Magic) override;
|
std::error_code verifySPMagic(uint64_t Magic) override;
|
||||||
virtual std::error_code
|
std::error_code readCustomSection(const SecHdrTableEntry &Entry) override {
|
||||||
readCustomSection(const SecHdrTableEntry &Entry) override {
|
|
||||||
// Update the data reader pointer to the end of the section.
|
// Update the data reader pointer to the end of the section.
|
||||||
Data = End;
|
Data = End;
|
||||||
return sampleprof_error::success;
|
return sampleprof_error::success;
|
||||||
|
@ -814,11 +813,11 @@ private:
|
||||||
DenseMap<StringRef, uint64_t> FuncOffsetTable;
|
DenseMap<StringRef, uint64_t> FuncOffsetTable;
|
||||||
/// The set containing the functions to use when compiling a module.
|
/// The set containing the functions to use when compiling a module.
|
||||||
DenseSet<StringRef> FuncsToUse;
|
DenseSet<StringRef> FuncsToUse;
|
||||||
virtual std::error_code verifySPMagic(uint64_t Magic) override;
|
std::error_code verifySPMagic(uint64_t Magic) override;
|
||||||
virtual std::error_code readNameTable() override;
|
std::error_code readNameTable() override;
|
||||||
/// Read a string indirectly via the name table.
|
/// Read a string indirectly via the name table.
|
||||||
virtual ErrorOr<StringRef> readStringFromTable() override;
|
ErrorOr<StringRef> readStringFromTable() override;
|
||||||
virtual std::error_code readHeader() override;
|
std::error_code readHeader() override;
|
||||||
std::error_code readFuncOffsetTable();
|
std::error_code readFuncOffsetTable();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -837,7 +836,7 @@ public:
|
||||||
bool collectFuncsFromModule() override;
|
bool collectFuncsFromModule() override;
|
||||||
|
|
||||||
/// Return whether names in the profile are all MD5 numbers.
|
/// Return whether names in the profile are all MD5 numbers.
|
||||||
virtual bool useMD5() override { return true; }
|
bool useMD5() override { return true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
using InlineCallStack = SmallVector<FunctionSamples *, 10>;
|
using InlineCallStack = SmallVector<FunctionSamples *, 10>;
|
||||||
|
|
|
@ -122,14 +122,13 @@ public:
|
||||||
SampleProfileWriterBinary(std::unique_ptr<raw_ostream> &OS)
|
SampleProfileWriterBinary(std::unique_ptr<raw_ostream> &OS)
|
||||||
: SampleProfileWriter(OS) {}
|
: SampleProfileWriter(OS) {}
|
||||||
|
|
||||||
virtual std::error_code writeSample(const FunctionSamples &S) override;
|
std::error_code writeSample(const FunctionSamples &S) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual MapVector<StringRef, uint32_t> &getNameTable() { return NameTable; }
|
virtual MapVector<StringRef, uint32_t> &getNameTable() { return NameTable; }
|
||||||
virtual std::error_code writeMagicIdent(SampleProfileFormat Format);
|
virtual std::error_code writeMagicIdent(SampleProfileFormat Format);
|
||||||
virtual std::error_code writeNameTable();
|
virtual std::error_code writeNameTable();
|
||||||
virtual std::error_code
|
std::error_code writeHeader(const SampleProfileMap &ProfileMap) override;
|
||||||
writeHeader(const SampleProfileMap &ProfileMap) override;
|
|
||||||
std::error_code writeSummary();
|
std::error_code writeSummary();
|
||||||
virtual std::error_code writeContextIdx(const SampleContext &Context);
|
virtual std::error_code writeContextIdx(const SampleContext &Context);
|
||||||
std::error_code writeNameIdx(StringRef FName);
|
std::error_code writeNameIdx(StringRef FName);
|
||||||
|
@ -187,14 +186,14 @@ const std::array<SmallVector<SecHdrTableEntry, 8>, NumOfLayout>
|
||||||
class SampleProfileWriterExtBinaryBase : public SampleProfileWriterBinary {
|
class SampleProfileWriterExtBinaryBase : public SampleProfileWriterBinary {
|
||||||
using SampleProfileWriterBinary::SampleProfileWriterBinary;
|
using SampleProfileWriterBinary::SampleProfileWriterBinary;
|
||||||
public:
|
public:
|
||||||
virtual std::error_code write(const SampleProfileMap &ProfileMap) override;
|
std::error_code write(const SampleProfileMap &ProfileMap) override;
|
||||||
|
|
||||||
virtual void setToCompressAllSections() override;
|
void setToCompressAllSections() override;
|
||||||
void setToCompressSection(SecType Type);
|
void setToCompressSection(SecType Type);
|
||||||
virtual std::error_code writeSample(const FunctionSamples &S) override;
|
std::error_code writeSample(const FunctionSamples &S) override;
|
||||||
|
|
||||||
// Set to use MD5 to represent string in NameTable.
|
// Set to use MD5 to represent string in NameTable.
|
||||||
virtual void setUseMD5() override {
|
void setUseMD5() override {
|
||||||
UseMD5 = true;
|
UseMD5 = true;
|
||||||
addSectionFlag(SecNameTable, SecNameTableFlags::SecFlagMD5Name);
|
addSectionFlag(SecNameTable, SecNameTableFlags::SecFlagMD5Name);
|
||||||
// MD5 will be stored as plain uint64_t instead of variable-length
|
// MD5 will be stored as plain uint64_t instead of variable-length
|
||||||
|
@ -205,15 +204,15 @@ public:
|
||||||
// Set the profile to be partial. It means the profile is for
|
// Set the profile to be partial. It means the profile is for
|
||||||
// common/shared code. The common profile is usually merged from
|
// common/shared code. The common profile is usually merged from
|
||||||
// profiles collected from running other targets.
|
// profiles collected from running other targets.
|
||||||
virtual void setPartialProfile() override {
|
void setPartialProfile() override {
|
||||||
addSectionFlag(SecProfSummary, SecProfSummaryFlags::SecFlagPartial);
|
addSectionFlag(SecProfSummary, SecProfSummaryFlags::SecFlagPartial);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void setProfileSymbolList(ProfileSymbolList *PSL) override {
|
void setProfileSymbolList(ProfileSymbolList *PSL) override {
|
||||||
ProfSymList = PSL;
|
ProfSymList = PSL;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void resetSecLayout(SectionLayout SL) override {
|
void resetSecLayout(SectionLayout SL) override {
|
||||||
verifySecLayout(SL);
|
verifySecLayout(SL);
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
// Make sure resetSecLayout is called before any flag setting.
|
// Make sure resetSecLayout is called before any flag setting.
|
||||||
|
@ -242,7 +241,7 @@ protected:
|
||||||
addSecFlag(SectionHdrLayout[SectionIdx], Flag);
|
addSecFlag(SectionHdrLayout[SectionIdx], Flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void addContext(const SampleContext &Context) override;
|
void addContext(const SampleContext &Context) override;
|
||||||
|
|
||||||
// placeholder for subclasses to dispatch their own section writers.
|
// placeholder for subclasses to dispatch their own section writers.
|
||||||
virtual std::error_code writeCustomSection(SecType Type) = 0;
|
virtual std::error_code writeCustomSection(SecType Type) = 0;
|
||||||
|
@ -258,9 +257,8 @@ protected:
|
||||||
const SampleProfileMap &ProfileMap);
|
const SampleProfileMap &ProfileMap);
|
||||||
|
|
||||||
// Helper function to write name table.
|
// Helper function to write name table.
|
||||||
virtual std::error_code writeNameTable() override;
|
std::error_code writeNameTable() override;
|
||||||
virtual std::error_code
|
std::error_code writeContextIdx(const SampleContext &Context) override;
|
||||||
writeContextIdx(const SampleContext &Context) override;
|
|
||||||
std::error_code writeCSNameIdx(const SampleContext &Context);
|
std::error_code writeCSNameIdx(const SampleContext &Context);
|
||||||
std::error_code writeCSNameTableSection();
|
std::error_code writeCSNameTableSection();
|
||||||
|
|
||||||
|
@ -288,8 +286,7 @@ protected:
|
||||||
private:
|
private:
|
||||||
void allocSecHdrTable();
|
void allocSecHdrTable();
|
||||||
std::error_code writeSecHdrTable();
|
std::error_code writeSecHdrTable();
|
||||||
virtual std::error_code
|
std::error_code writeHeader(const SampleProfileMap &ProfileMap) override;
|
||||||
writeHeader(const SampleProfileMap &ProfileMap) override;
|
|
||||||
std::error_code compressAndOutput();
|
std::error_code compressAndOutput();
|
||||||
|
|
||||||
// We will swap the raw_ostream held by LocalBufStream and that
|
// We will swap the raw_ostream held by LocalBufStream and that
|
||||||
|
@ -334,14 +331,13 @@ private:
|
||||||
std::error_code writeDefaultLayout(const SampleProfileMap &ProfileMap);
|
std::error_code writeDefaultLayout(const SampleProfileMap &ProfileMap);
|
||||||
std::error_code writeCtxSplitLayout(const SampleProfileMap &ProfileMap);
|
std::error_code writeCtxSplitLayout(const SampleProfileMap &ProfileMap);
|
||||||
|
|
||||||
virtual std::error_code
|
std::error_code writeSections(const SampleProfileMap &ProfileMap) override;
|
||||||
writeSections(const SampleProfileMap &ProfileMap) override;
|
|
||||||
|
|
||||||
virtual std::error_code writeCustomSection(SecType Type) override {
|
std::error_code writeCustomSection(SecType Type) override {
|
||||||
return sampleprof_error::success;
|
return sampleprof_error::success;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void verifySecLayout(SectionLayout SL) override {
|
void verifySecLayout(SectionLayout SL) override {
|
||||||
assert((SL == DefaultLayout || SL == CtxSplitLayout) &&
|
assert((SL == DefaultLayout || SL == CtxSplitLayout) &&
|
||||||
"Unsupported layout");
|
"Unsupported layout");
|
||||||
}
|
}
|
||||||
|
@ -381,8 +377,8 @@ class SampleProfileWriterCompactBinary : public SampleProfileWriterBinary {
|
||||||
using SampleProfileWriterBinary::SampleProfileWriterBinary;
|
using SampleProfileWriterBinary::SampleProfileWriterBinary;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual std::error_code writeSample(const FunctionSamples &S) override;
|
std::error_code writeSample(const FunctionSamples &S) override;
|
||||||
virtual std::error_code write(const SampleProfileMap &ProfileMap) override;
|
std::error_code write(const SampleProfileMap &ProfileMap) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/// The table mapping from function name to the offset of its FunctionSample
|
/// The table mapping from function name to the offset of its FunctionSample
|
||||||
|
@ -391,9 +387,8 @@ protected:
|
||||||
/// The offset of the slot to be filled with the offset of FuncOffsetTable
|
/// The offset of the slot to be filled with the offset of FuncOffsetTable
|
||||||
/// towards profile start.
|
/// towards profile start.
|
||||||
uint64_t TableOffset;
|
uint64_t TableOffset;
|
||||||
virtual std::error_code writeNameTable() override;
|
std::error_code writeNameTable() override;
|
||||||
virtual std::error_code
|
std::error_code writeHeader(const SampleProfileMap &ProfileMap) override;
|
||||||
writeHeader(const SampleProfileMap &ProfileMap) override;
|
|
||||||
std::error_code writeFuncOffsetTable();
|
std::error_code writeFuncOffsetTable();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -192,9 +192,7 @@ public:
|
||||||
Error commit() override { return Error::success(); }
|
Error commit() override { return Error::success(); }
|
||||||
|
|
||||||
/// Return the properties of this stream.
|
/// Return the properties of this stream.
|
||||||
virtual BinaryStreamFlags getFlags() const override {
|
BinaryStreamFlags getFlags() const override { return BSF_Write | BSF_Append; }
|
||||||
return BSF_Write | BSF_Append;
|
|
||||||
}
|
|
||||||
|
|
||||||
MutableArrayRef<uint8_t> data() { return Data; }
|
MutableArrayRef<uint8_t> data() { return Data; }
|
||||||
};
|
};
|
||||||
|
|
|
@ -1141,7 +1141,7 @@ private:
|
||||||
class ECError : public ErrorInfo<ECError> {
|
class ECError : public ErrorInfo<ECError> {
|
||||||
friend Error errorCodeToError(std::error_code);
|
friend Error errorCodeToError(std::error_code);
|
||||||
|
|
||||||
virtual void anchor() override;
|
void anchor() override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setErrorCode(std::error_code EC) { this->EC = EC; }
|
void setErrorCode(std::error_code EC) { this->EC = EC; }
|
||||||
|
|
|
@ -710,7 +710,7 @@ class buffer_ostream : public raw_svector_ostream {
|
||||||
raw_ostream &OS;
|
raw_ostream &OS;
|
||||||
SmallVector<char, 0> Buffer;
|
SmallVector<char, 0> Buffer;
|
||||||
|
|
||||||
virtual void anchor() override;
|
void anchor() override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
buffer_ostream(raw_ostream &OS) : raw_svector_ostream(Buffer), OS(OS) {}
|
buffer_ostream(raw_ostream &OS) : raw_svector_ostream(Buffer), OS(OS) {}
|
||||||
|
@ -721,7 +721,7 @@ class buffer_unique_ostream : public raw_svector_ostream {
|
||||||
std::unique_ptr<raw_ostream> OS;
|
std::unique_ptr<raw_ostream> OS;
|
||||||
SmallVector<char, 0> Buffer;
|
SmallVector<char, 0> Buffer;
|
||||||
|
|
||||||
virtual void anchor() override;
|
void anchor() override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
buffer_unique_ostream(std::unique_ptr<raw_ostream> OS)
|
buffer_unique_ostream(std::unique_ptr<raw_ostream> OS)
|
||||||
|
|
|
@ -2837,7 +2837,7 @@ struct IRAttribute : public BaseType {
|
||||||
IRAttribute(const IRPosition &IRP) : BaseType(IRP) {}
|
IRAttribute(const IRPosition &IRP) : BaseType(IRP) {}
|
||||||
|
|
||||||
/// See AbstractAttribute::initialize(...).
|
/// See AbstractAttribute::initialize(...).
|
||||||
virtual void initialize(Attributor &A) override {
|
void initialize(Attributor &A) override {
|
||||||
const IRPosition &IRP = this->getIRPosition();
|
const IRPosition &IRP = this->getIRPosition();
|
||||||
if (isa<UndefValue>(IRP.getAssociatedValue()) ||
|
if (isa<UndefValue>(IRP.getAssociatedValue()) ||
|
||||||
this->hasAttr(getAttrKind(), /* IgnoreSubsumingPositions */ false,
|
this->hasAttr(getAttrKind(), /* IgnoreSubsumingPositions */ false,
|
||||||
|
|
|
@ -102,9 +102,9 @@ struct AutoInitRemark : public MemoryOpRemark {
|
||||||
static bool canHandle(const Instruction *I);
|
static bool canHandle(const Instruction *I);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual std::string explainSource(StringRef Type) const override;
|
std::string explainSource(StringRef Type) const override;
|
||||||
virtual StringRef remarkName(RemarkKind RK) const override;
|
StringRef remarkName(RemarkKind RK) const override;
|
||||||
virtual DiagnosticKind diagnosticKind() const override {
|
DiagnosticKind diagnosticKind() const override {
|
||||||
return DK_OptimizationRemarkMissed;
|
return DK_OptimizationRemarkMissed;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -185,7 +185,7 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
InlineCostAnnotationWriter(InlineCostCallAnalyzer *ICCA) : ICCA(ICCA) {}
|
InlineCostAnnotationWriter(InlineCostCallAnalyzer *ICCA) : ICCA(ICCA) {}
|
||||||
virtual void emitInstructionAnnot(const Instruction *I,
|
void emitInstructionAnnot(const Instruction *I,
|
||||||
formatted_raw_ostream &OS) override;
|
formatted_raw_ostream &OS) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ public:
|
||||||
|
|
||||||
void endModule() override;
|
void endModule() override;
|
||||||
void beginFunction(const MachineFunction *MF) override {}
|
void beginFunction(const MachineFunction *MF) override {}
|
||||||
virtual void markFunctionEnd() override;
|
void markFunctionEnd() override;
|
||||||
void endFunction(const MachineFunction *MF) override;
|
void endFunction(const MachineFunction *MF) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -47,7 +47,7 @@ public:
|
||||||
|
|
||||||
bool runOnMachineFunction(MachineFunction &MF) override;
|
bool runOnMachineFunction(MachineFunction &MF) override;
|
||||||
|
|
||||||
virtual MachineFunctionProperties getRequiredProperties() const override {
|
MachineFunctionProperties getRequiredProperties() const override {
|
||||||
return MachineFunctionProperties().set(
|
return MachineFunctionProperties().set(
|
||||||
MachineFunctionProperties::Property::IsSSA);
|
MachineFunctionProperties::Property::IsSSA);
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,7 +253,7 @@ class XCOFFObjectWriter : public MCObjectWriter {
|
||||||
|
|
||||||
CsectGroup &getCsectGroup(const MCSectionXCOFF *MCSec);
|
CsectGroup &getCsectGroup(const MCSectionXCOFF *MCSec);
|
||||||
|
|
||||||
virtual void reset() override;
|
void reset() override;
|
||||||
|
|
||||||
void executePostLayoutBinding(MCAssembler &, const MCAsmLayout &) override;
|
void executePostLayoutBinding(MCAssembler &, const MCAsmLayout &) override;
|
||||||
|
|
||||||
|
|
|
@ -115,13 +115,13 @@ public:
|
||||||
Error visit(const OwnedDataSection &Sec) override;
|
Error visit(const OwnedDataSection &Sec) override;
|
||||||
Error visit(const StringTableSection &Sec) override;
|
Error visit(const StringTableSection &Sec) override;
|
||||||
Error visit(const DynamicRelocationSection &Sec) override;
|
Error visit(const DynamicRelocationSection &Sec) override;
|
||||||
virtual Error visit(const SymbolTableSection &Sec) override = 0;
|
Error visit(const SymbolTableSection &Sec) override = 0;
|
||||||
virtual Error visit(const RelocationSection &Sec) override = 0;
|
Error visit(const RelocationSection &Sec) override = 0;
|
||||||
virtual Error visit(const GnuDebugLinkSection &Sec) override = 0;
|
Error visit(const GnuDebugLinkSection &Sec) override = 0;
|
||||||
virtual Error visit(const GroupSection &Sec) override = 0;
|
Error visit(const GroupSection &Sec) override = 0;
|
||||||
virtual Error visit(const SectionIndexSection &Sec) override = 0;
|
Error visit(const SectionIndexSection &Sec) override = 0;
|
||||||
virtual Error visit(const CompressedSection &Sec) override = 0;
|
Error visit(const CompressedSection &Sec) override = 0;
|
||||||
virtual Error visit(const DecompressedSection &Sec) override = 0;
|
Error visit(const DecompressedSection &Sec) override = 0;
|
||||||
|
|
||||||
explicit SectionWriter(WritableMemoryBuffer &Buf) : Out(Buf) {}
|
explicit SectionWriter(WritableMemoryBuffer &Buf) : Out(Buf) {}
|
||||||
};
|
};
|
||||||
|
|
|
@ -66,7 +66,7 @@ public:
|
||||||
report_fatal_error("Invalid rule identifier");
|
report_fatal_error("Invalid rule identifier");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
||||||
MachineIRBuilder &B) const override;
|
MachineIRBuilder &B) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -355,7 +355,7 @@ public:
|
||||||
report_fatal_error("Invalid rule identifier");
|
report_fatal_error("Invalid rule identifier");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
||||||
MachineIRBuilder &B) const override;
|
MachineIRBuilder &B) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -997,7 +997,7 @@ public:
|
||||||
report_fatal_error("Invalid rule identifier");
|
report_fatal_error("Invalid rule identifier");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
||||||
MachineIRBuilder &B) const override;
|
MachineIRBuilder &B) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -370,7 +370,7 @@ public:
|
||||||
report_fatal_error("Invalid rule identifier");
|
report_fatal_error("Invalid rule identifier");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
||||||
MachineIRBuilder &B) const override;
|
MachineIRBuilder &B) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ public:
|
||||||
virtual ~AMDGPUMIRFormatter() = default;
|
virtual ~AMDGPUMIRFormatter() = default;
|
||||||
|
|
||||||
/// Implement target specific parsing of target custom pseudo source value.
|
/// Implement target specific parsing of target custom pseudo source value.
|
||||||
virtual bool
|
bool
|
||||||
parseCustomPseudoSourceValue(StringRef Src, MachineFunction &MF,
|
parseCustomPseudoSourceValue(StringRef Src, MachineFunction &MF,
|
||||||
PerFunctionMIParsingState &PFS,
|
PerFunctionMIParsingState &PFS,
|
||||||
const PseudoSourceValue *&PSV,
|
const PseudoSourceValue *&PSV,
|
||||||
|
|
|
@ -191,7 +191,7 @@ public:
|
||||||
report_fatal_error("Invalid rule identifier");
|
report_fatal_error("Invalid rule identifier");
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
|
||||||
MachineIRBuilder &B) const override;
|
MachineIRBuilder &B) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ public:
|
||||||
MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
|
MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
|
||||||
bool *IsFast = nullptr) const override;
|
bool *IsFast = nullptr) const override;
|
||||||
|
|
||||||
virtual bool canCombineTruncStore(EVT ValVT, EVT MemVT,
|
bool canCombineTruncStore(EVT ValVT, EVT MemVT,
|
||||||
bool LegalOperations) const override {
|
bool LegalOperations) const override {
|
||||||
// R600 has "custom" lowering for truncating stores despite not supporting
|
// R600 has "custom" lowering for truncating stores despite not supporting
|
||||||
// those instructions. If we allow that custom lowering in the DAG combiner
|
// those instructions. If we allow that custom lowering in the DAG combiner
|
||||||
|
|
|
@ -487,9 +487,9 @@ public:
|
||||||
AtomicExpansionKind
|
AtomicExpansionKind
|
||||||
shouldExpandAtomicCmpXchgInIR(AtomicCmpXchgInst *AI) const override;
|
shouldExpandAtomicCmpXchgInIR(AtomicCmpXchgInst *AI) const override;
|
||||||
|
|
||||||
virtual const TargetRegisterClass *
|
const TargetRegisterClass *getRegClassFor(MVT VT,
|
||||||
getRegClassFor(MVT VT, bool isDivergent) const override;
|
bool isDivergent) const override;
|
||||||
virtual bool requiresUniformRegister(MachineFunction &MF,
|
bool requiresUniformRegister(MachineFunction &MF,
|
||||||
const Value *V) const override;
|
const Value *V) const override;
|
||||||
Align getPrefLoopAlignment(MachineLoop *ML) const override;
|
Align getPrefLoopAlignment(MachineLoop *ML) const override;
|
||||||
|
|
||||||
|
|
|
@ -134,13 +134,12 @@ public:
|
||||||
getSerializableDirectMachineOperandTargetFlags() const override;
|
getSerializableDirectMachineOperandTargetFlags() const override;
|
||||||
|
|
||||||
// Return true if the function can safely be outlined from.
|
// Return true if the function can safely be outlined from.
|
||||||
virtual bool
|
bool isFunctionSafeToOutlineFrom(MachineFunction &MF,
|
||||||
isFunctionSafeToOutlineFrom(MachineFunction &MF,
|
|
||||||
bool OutlineFromLinkOnceODRs) const override;
|
bool OutlineFromLinkOnceODRs) const override;
|
||||||
|
|
||||||
// Return true if MBB is safe to outline from, and return any target-specific
|
// Return true if MBB is safe to outline from, and return any target-specific
|
||||||
// information in Flags.
|
// information in Flags.
|
||||||
virtual bool isMBBSafeToOutlineFrom(MachineBasicBlock &MBB,
|
bool isMBBSafeToOutlineFrom(MachineBasicBlock &MBB,
|
||||||
unsigned &Flags) const override;
|
unsigned &Flags) const override;
|
||||||
|
|
||||||
bool shouldOutlineFromFunctionByDefault(MachineFunction &MF) const override;
|
bool shouldOutlineFromFunctionByDefault(MachineFunction &MF) const override;
|
||||||
|
|
|
@ -44,8 +44,7 @@ public:
|
||||||
|
|
||||||
TargetTransformInfo getTargetTransformInfo(const Function &F) const override;
|
TargetTransformInfo getTargetTransformInfo(const Function &F) const override;
|
||||||
|
|
||||||
virtual bool isNoopAddrSpaceCast(unsigned SrcAS,
|
bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DstAS) const override;
|
||||||
unsigned DstAS) const override;
|
|
||||||
|
|
||||||
yaml::MachineFunctionInfo *createDefaultFuncInfoYAML() const override;
|
yaml::MachineFunctionInfo *createDefaultFuncInfoYAML() const override;
|
||||||
yaml::MachineFunctionInfo *
|
yaml::MachineFunctionInfo *
|
||||||
|
|
|
@ -1409,7 +1409,7 @@ namespace llvm {
|
||||||
Register
|
Register
|
||||||
getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
|
getExceptionSelectorRegister(const Constant *PersonalityFn) const override;
|
||||||
|
|
||||||
virtual bool needsFixedCatchObjects() const override;
|
bool needsFixedCatchObjects() const override;
|
||||||
|
|
||||||
/// This method returns a target specific FastISel object,
|
/// This method returns a target specific FastISel object,
|
||||||
/// or null if the target does not support "fast" ISel.
|
/// or null if the target does not support "fast" ISel.
|
||||||
|
|
|
@ -3328,7 +3328,7 @@ struct AANoAliasReturned final : AANoAliasImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// See AbstractAttribute::updateImpl(...).
|
/// See AbstractAttribute::updateImpl(...).
|
||||||
virtual ChangeStatus updateImpl(Attributor &A) override {
|
ChangeStatus updateImpl(Attributor &A) override {
|
||||||
|
|
||||||
auto CheckReturnValue = [&](Value &RV) -> bool {
|
auto CheckReturnValue = [&](Value &RV) -> bool {
|
||||||
if (Constant *C = dyn_cast<Constant>(&RV))
|
if (Constant *C = dyn_cast<Constant>(&RV))
|
||||||
|
@ -3427,7 +3427,7 @@ struct AAIsDeadValueImpl : public AAIsDead {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// See AbstractAttribute::getAsStr().
|
/// See AbstractAttribute::getAsStr().
|
||||||
virtual const std::string getAsStr() const override {
|
const std::string getAsStr() const override {
|
||||||
return isAssumedDead() ? "assumed-dead" : "assumed-live";
|
return isAssumedDead() ? "assumed-dead" : "assumed-live";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4709,7 +4709,7 @@ struct AANoReturnImpl : public AANoReturn {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// See AbstractAttribute::updateImpl(Attributor &A).
|
/// See AbstractAttribute::updateImpl(Attributor &A).
|
||||||
virtual ChangeStatus updateImpl(Attributor &A) override {
|
ChangeStatus updateImpl(Attributor &A) override {
|
||||||
auto CheckForNoReturn = [](Instruction &) { return false; };
|
auto CheckForNoReturn = [](Instruction &) { return false; };
|
||||||
bool UsedAssumedInformation = false;
|
bool UsedAssumedInformation = false;
|
||||||
if (!A.checkForAllInstructions(CheckForNoReturn, *this,
|
if (!A.checkForAllInstructions(CheckForNoReturn, *this,
|
||||||
|
@ -6848,7 +6848,7 @@ struct AAPrivatizablePtrFloating : public AAPrivatizablePtrImpl {
|
||||||
: AAPrivatizablePtrImpl(IRP, A) {}
|
: AAPrivatizablePtrImpl(IRP, A) {}
|
||||||
|
|
||||||
/// See AbstractAttribute::initialize(...).
|
/// See AbstractAttribute::initialize(...).
|
||||||
virtual void initialize(Attributor &A) override {
|
void initialize(Attributor &A) override {
|
||||||
// TODO: We can privatize more than arguments.
|
// TODO: We can privatize more than arguments.
|
||||||
indicatePessimisticFixpoint();
|
indicatePessimisticFixpoint();
|
||||||
}
|
}
|
||||||
|
@ -7222,7 +7222,7 @@ struct AAMemoryBehaviorFunction final : public AAMemoryBehaviorImpl {
|
||||||
: AAMemoryBehaviorImpl(IRP, A) {}
|
: AAMemoryBehaviorImpl(IRP, A) {}
|
||||||
|
|
||||||
/// See AbstractAttribute::updateImpl(Attributor &A).
|
/// See AbstractAttribute::updateImpl(Attributor &A).
|
||||||
virtual ChangeStatus updateImpl(Attributor &A) override;
|
ChangeStatus updateImpl(Attributor &A) override;
|
||||||
|
|
||||||
/// See AbstractAttribute::manifest(...).
|
/// See AbstractAttribute::manifest(...).
|
||||||
ChangeStatus manifest(Attributor &A) override {
|
ChangeStatus manifest(Attributor &A) override {
|
||||||
|
@ -7934,7 +7934,7 @@ struct AAMemoryLocationFunction final : public AAMemoryLocationImpl {
|
||||||
: AAMemoryLocationImpl(IRP, A) {}
|
: AAMemoryLocationImpl(IRP, A) {}
|
||||||
|
|
||||||
/// See AbstractAttribute::updateImpl(Attributor &A).
|
/// See AbstractAttribute::updateImpl(Attributor &A).
|
||||||
virtual ChangeStatus updateImpl(Attributor &A) override {
|
ChangeStatus updateImpl(Attributor &A) override {
|
||||||
|
|
||||||
const auto &MemBehaviorAA =
|
const auto &MemBehaviorAA =
|
||||||
A.getAAFor<AAMemoryBehavior>(*this, getIRPosition(), DepClassTy::NONE);
|
A.getAAFor<AAMemoryBehavior>(*this, getIRPosition(), DepClassTy::NONE);
|
||||||
|
@ -9332,13 +9332,13 @@ struct AANoUndefCallSiteReturned final
|
||||||
struct AACallEdgesImpl : public AACallEdges {
|
struct AACallEdgesImpl : public AACallEdges {
|
||||||
AACallEdgesImpl(const IRPosition &IRP, Attributor &A) : AACallEdges(IRP, A) {}
|
AACallEdgesImpl(const IRPosition &IRP, Attributor &A) : AACallEdges(IRP, A) {}
|
||||||
|
|
||||||
virtual const SetVector<Function *> &getOptimisticEdges() const override {
|
const SetVector<Function *> &getOptimisticEdges() const override {
|
||||||
return CalledFunctions;
|
return CalledFunctions;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool hasUnknownCallee() const override { return HasUnknownCallee; }
|
bool hasUnknownCallee() const override { return HasUnknownCallee; }
|
||||||
|
|
||||||
virtual bool hasNonAsmUnknownCallee() const override {
|
bool hasNonAsmUnknownCallee() const override {
|
||||||
return HasUnknownCalleeNonAsm;
|
return HasUnknownCalleeNonAsm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ struct FunctionSpecializationLegacyPass : public ModulePass {
|
||||||
AU.addRequired<TargetTransformInfoWrapperPass>();
|
AU.addRequired<TargetTransformInfoWrapperPass>();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool runOnModule(Module &M) override {
|
bool runOnModule(Module &M) override {
|
||||||
if (skipModule(M))
|
if (skipModule(M))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ private:
|
||||||
int64_t(Mapping.BinaryAddress) - *Mapping.ObjectAddress);
|
int64_t(Mapping.BinaryAddress) - *Mapping.ObjectAddress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
virtual ~AddressManager() override { clear(); }
|
~AddressManager() override { clear(); }
|
||||||
|
|
||||||
bool hasValidRelocs() override {
|
bool hasValidRelocs() override {
|
||||||
return !ValidDebugInfoRelocs.empty() || !ValidDebugAddrRelocs.empty();
|
return !ValidDebugInfoRelocs.empty() || !ValidDebugAddrRelocs.empty();
|
||||||
|
|
|
@ -53,7 +53,7 @@ public:
|
||||||
bool GenerateOnExit);
|
bool GenerateOnExit);
|
||||||
~ReproducerGenerate() override;
|
~ReproducerGenerate() override;
|
||||||
|
|
||||||
virtual void generate() override;
|
void generate() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// The path to the reproducer.
|
/// The path to the reproducer.
|
||||||
|
|
|
@ -48,7 +48,7 @@ public:
|
||||||
: MCStreamer(Context), Regions(R) {}
|
: MCStreamer(Context), Regions(R) {}
|
||||||
|
|
||||||
// We only want to intercept the emission of new instructions.
|
// We only want to intercept the emission of new instructions.
|
||||||
virtual void emitInstruction(const MCInst &Inst,
|
void emitInstruction(const MCInst &Inst,
|
||||||
const MCSubtargetInfo & /* unused */) override {
|
const MCSubtargetInfo & /* unused */) override {
|
||||||
Regions.addInstruction(Inst);
|
Regions.addInstruction(Inst);
|
||||||
}
|
}
|
||||||
|
|
|
@ -598,7 +598,7 @@ public:
|
||||||
: PerfReaderBase(B, PerfTrace), PIDFilter(PID){};
|
: PerfReaderBase(B, PerfTrace), PIDFilter(PID){};
|
||||||
|
|
||||||
// Entry of the reader to parse multiple perf traces
|
// Entry of the reader to parse multiple perf traces
|
||||||
virtual void parsePerfTraces() override;
|
void parsePerfTraces() override;
|
||||||
// Generate perf script from perf data
|
// Generate perf script from perf data
|
||||||
static PerfInputFile convertPerfDataToTrace(ProfiledBinary *Binary,
|
static PerfInputFile convertPerfDataToTrace(ProfiledBinary *Binary,
|
||||||
PerfInputFile &File,
|
PerfInputFile &File,
|
||||||
|
@ -678,7 +678,7 @@ public:
|
||||||
Optional<uint32_t> PID)
|
Optional<uint32_t> PID)
|
||||||
: PerfScriptReader(Binary, PerfTrace, PID){};
|
: PerfScriptReader(Binary, PerfTrace, PID){};
|
||||||
// Parse the LBR only sample.
|
// Parse the LBR only sample.
|
||||||
virtual void parseSample(TraceStream &TraceIt, uint64_t Count) override;
|
void parseSample(TraceStream &TraceIt, uint64_t Count) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -96,7 +96,7 @@ public:
|
||||||
void printDescription(raw_ostream &OS) const override;
|
void printDescription(raw_ostream &OS) const override;
|
||||||
|
|
||||||
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
virtual LLVM_DUMP_METHOD void dump() const override { print(errs()); }
|
LLVM_DUMP_METHOD void dump() const override { print(errs()); }
|
||||||
#endif // if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
#endif // if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ public:
|
||||||
void printDescription(raw_ostream &OS) const override;
|
void printDescription(raw_ostream &OS) const override;
|
||||||
|
|
||||||
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
virtual LLVM_DUMP_METHOD void dump() const override { print(errs()); }
|
LLVM_DUMP_METHOD void dump() const override { print(errs()); }
|
||||||
#endif // if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
#endif // if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ public:
|
||||||
void printDescription(raw_ostream &OS) const override;
|
void printDescription(raw_ostream &OS) const override;
|
||||||
|
|
||||||
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
virtual LLVM_DUMP_METHOD void dump() const override { print(errs()); }
|
LLVM_DUMP_METHOD void dump() const override { print(errs()); }
|
||||||
#endif // if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
#endif // if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue