forked from OSchip/llvm-project
Fix some Clang-tidy modernize warnings, other minor fixes.
Fixed warnings are: modernize-use-override, modernize-use-nullptr and modernize-redundant-void-arg. Differential revision: http://reviews.llvm.org/D14312 llvm-svn: 252087
This commit is contained in:
parent
dd23974a5d
commit
ffec81ca00
|
@ -256,7 +256,6 @@ typedef enum {
|
||||||
LLVMCleanupPad = 65,
|
LLVMCleanupPad = 65,
|
||||||
LLVMCatchEndPad = 66,
|
LLVMCatchEndPad = 66,
|
||||||
LLVMCleanupEndPad = 67
|
LLVMCleanupEndPad = 67
|
||||||
|
|
||||||
} LLVMOpcode;
|
} LLVMOpcode;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -436,7 +435,6 @@ void LLVMInitializeCore(LLVMPassRegistryRef R);
|
||||||
@see ManagedStatic */
|
@see ManagedStatic */
|
||||||
void LLVMShutdown(void);
|
void LLVMShutdown(void);
|
||||||
|
|
||||||
|
|
||||||
/*===-- Error handling ----------------------------------------------------===*/
|
/*===-- Error handling ----------------------------------------------------===*/
|
||||||
|
|
||||||
char *LLVMCreateMessage(const char *Message);
|
char *LLVMCreateMessage(const char *Message);
|
||||||
|
@ -816,6 +814,7 @@ LLVMTypeRef LLVMInt8TypeInContext(LLVMContextRef C);
|
||||||
LLVMTypeRef LLVMInt16TypeInContext(LLVMContextRef C);
|
LLVMTypeRef LLVMInt16TypeInContext(LLVMContextRef C);
|
||||||
LLVMTypeRef LLVMInt32TypeInContext(LLVMContextRef C);
|
LLVMTypeRef LLVMInt32TypeInContext(LLVMContextRef C);
|
||||||
LLVMTypeRef LLVMInt64TypeInContext(LLVMContextRef C);
|
LLVMTypeRef LLVMInt64TypeInContext(LLVMContextRef C);
|
||||||
|
LLVMTypeRef LLVMInt128TypeInContext(LLVMContextRef C);
|
||||||
LLVMTypeRef LLVMIntTypeInContext(LLVMContextRef C, unsigned NumBits);
|
LLVMTypeRef LLVMIntTypeInContext(LLVMContextRef C, unsigned NumBits);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -827,6 +826,7 @@ LLVMTypeRef LLVMInt8Type(void);
|
||||||
LLVMTypeRef LLVMInt16Type(void);
|
LLVMTypeRef LLVMInt16Type(void);
|
||||||
LLVMTypeRef LLVMInt32Type(void);
|
LLVMTypeRef LLVMInt32Type(void);
|
||||||
LLVMTypeRef LLVMInt64Type(void);
|
LLVMTypeRef LLVMInt64Type(void);
|
||||||
|
LLVMTypeRef LLVMInt128Type(void);
|
||||||
LLVMTypeRef LLVMIntType(unsigned NumBits);
|
LLVMTypeRef LLVMIntType(unsigned NumBits);
|
||||||
unsigned LLVMGetIntTypeWidth(LLVMTypeRef IntegerTy);
|
unsigned LLVMGetIntTypeWidth(LLVMTypeRef IntegerTy);
|
||||||
|
|
||||||
|
@ -1030,7 +1030,6 @@ LLVMBool LLVMIsOpaqueStruct(LLVMTypeRef StructTy);
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup LLVMCCoreTypeSequential Sequential Types
|
* @defgroup LLVMCCoreTypeSequential Sequential Types
|
||||||
*
|
*
|
||||||
|
@ -1211,7 +1210,7 @@ LLVMTypeRef LLVMX86MMXType(void);
|
||||||
macro(InsertElementInst) \
|
macro(InsertElementInst) \
|
||||||
macro(InsertValueInst) \
|
macro(InsertValueInst) \
|
||||||
macro(LandingPadInst) \
|
macro(LandingPadInst) \
|
||||||
macro(CleanupPadInst) \
|
macro(CleanupPadInst) \
|
||||||
macro(PHINode) \
|
macro(PHINode) \
|
||||||
macro(SelectInst) \
|
macro(SelectInst) \
|
||||||
macro(ShuffleVectorInst) \
|
macro(ShuffleVectorInst) \
|
||||||
|
@ -1226,9 +1225,9 @@ LLVMTypeRef LLVMX86MMXType(void);
|
||||||
macro(ResumeInst) \
|
macro(ResumeInst) \
|
||||||
macro(CleanupReturnInst) \
|
macro(CleanupReturnInst) \
|
||||||
macro(CatchReturnInst) \
|
macro(CatchReturnInst) \
|
||||||
macro(CatchPadInst) \
|
macro(CatchPadInst) \
|
||||||
macro(TerminatePadInst) \
|
macro(TerminatePadInst) \
|
||||||
macro(CatchEndPadInst) \
|
macro(CatchEndPadInst) \
|
||||||
macro(CleanupEndPadInst) \
|
macro(CleanupEndPadInst) \
|
||||||
macro(UnaryInstruction) \
|
macro(UnaryInstruction) \
|
||||||
macro(AllocaInst) \
|
macro(AllocaInst) \
|
||||||
|
@ -3037,6 +3036,6 @@ LLVMBool LLVMIsMultithreaded(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* !defined(__cplusplus) */
|
#endif
|
||||||
|
|
||||||
#endif /* !defined(LLVM_C_CORE_H) */
|
#endif /* LLVM_C_CORE_H */
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
// sample profile data.
|
// sample profile data.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#ifndef LLVM_PROFILEDATA_SAMPLEPROF_H_
|
#ifndef LLVM_PROFILEDATA_SAMPLEPROF_H_
|
||||||
#define LLVM_PROFILEDATA_SAMPLEPROF_H_
|
#define LLVM_PROFILEDATA_SAMPLEPROF_H_
|
||||||
|
|
||||||
|
@ -245,7 +246,7 @@ public:
|
||||||
findFunctionSamplesAt(const CallsiteLocation &Loc) const {
|
findFunctionSamplesAt(const CallsiteLocation &Loc) const {
|
||||||
auto iter = CallsiteSamples.find(Loc);
|
auto iter = CallsiteSamples.find(Loc);
|
||||||
if (iter == CallsiteSamples.end()) {
|
if (iter == CallsiteSamples.end()) {
|
||||||
return NULL;
|
return nullptr;
|
||||||
} else {
|
} else {
|
||||||
return &iter->second;
|
return &iter->second;
|
||||||
}
|
}
|
||||||
|
@ -322,8 +323,8 @@ private:
|
||||||
CallsiteSampleMap CallsiteSamples;
|
CallsiteSampleMap CallsiteSamples;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // End namespace sampleprof
|
} // end namespace sampleprof
|
||||||
|
|
||||||
} // End namespace llvm
|
} // end namespace llvm
|
||||||
|
|
||||||
#endif // LLVM_PROFILEDATA_SAMPLEPROF_H_
|
#endif // LLVM_PROFILEDATA_SAMPLEPROF_H_
|
||||||
|
|
|
@ -41,7 +41,7 @@ void DwarfAccelTable::AddName(DwarfStringPoolEntryRef Name, const DIE *die,
|
||||||
DIEs.Values.push_back(new (Allocator) HashDataContents(die, Flags));
|
DIEs.Values.push_back(new (Allocator) HashDataContents(die, Flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DwarfAccelTable::ComputeBucketCount(void) {
|
void DwarfAccelTable::ComputeBucketCount() {
|
||||||
// First get the number of unique hashes.
|
// First get the number of unique hashes.
|
||||||
std::vector<uint32_t> uniques(Data.size());
|
std::vector<uint32_t> uniques(Data.size());
|
||||||
for (size_t i = 0, e = Data.size(); i < e; ++i)
|
for (size_t i = 0, e = Data.size(); i < e; ++i)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===- lib/MC/MCAsmStreamer.cpp - Text Assembly Output --------------------===//
|
//===- lib/MC/MCAsmStreamer.cpp - Text Assembly Output ----------*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -33,6 +33,7 @@
|
||||||
#include "llvm/Support/MathExtras.h"
|
#include "llvm/Support/MathExtras.h"
|
||||||
#include "llvm/Support/Path.h"
|
#include "llvm/Support/Path.h"
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
@ -655,7 +656,6 @@ static void PrintQuotedString(StringRef Data, raw_ostream &OS) {
|
||||||
OS << '"';
|
OS << '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MCAsmStreamer::EmitBytes(StringRef Data) {
|
void MCAsmStreamer::EmitBytes(StringRef Data) {
|
||||||
assert(getCurrentSection().first &&
|
assert(getCurrentSection().first &&
|
||||||
"Cannot emit contents before setting section!");
|
"Cannot emit contents before setting section!");
|
||||||
|
@ -777,7 +777,6 @@ void MCAsmStreamer::EmitGPRel32Value(const MCExpr *Value) {
|
||||||
EmitEOL();
|
EmitEOL();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// EmitFill - Emit NumBytes bytes worth of the value specified by
|
/// EmitFill - Emit NumBytes bytes worth of the value specified by
|
||||||
/// FillValue. This implements directives such as '.space'.
|
/// FillValue. This implements directives such as '.space'.
|
||||||
void MCAsmStreamer::EmitFill(uint64_t NumBytes, uint8_t FillValue) {
|
void MCAsmStreamer::EmitFill(uint64_t NumBytes, uint8_t FillValue) {
|
||||||
|
@ -867,7 +866,6 @@ bool MCAsmStreamer::EmitValueToOffset(const MCExpr *Offset,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void MCAsmStreamer::EmitFileDirective(StringRef Filename) {
|
void MCAsmStreamer::EmitFileDirective(StringRef Filename) {
|
||||||
assert(MAI->hasSingleParameterDotFile());
|
assert(MAI->hasSingleParameterDotFile());
|
||||||
OS << "\t.file\t";
|
OS << "\t.file\t";
|
||||||
|
@ -1230,7 +1228,7 @@ void MCAsmStreamer::EmitWinCFIPushFrame(bool Code) {
|
||||||
EmitEOL();
|
EmitEOL();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCAsmStreamer::EmitWinCFIEndProlog(void) {
|
void MCAsmStreamer::EmitWinCFIEndProlog() {
|
||||||
MCStreamer::EmitWinCFIEndProlog();
|
MCStreamer::EmitWinCFIEndProlog();
|
||||||
|
|
||||||
OS << "\t.seh_endprologue";
|
OS << "\t.seh_endprologue";
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "llvm/Config/config.h"
|
#include "llvm/Config/config.h"
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
|
||||||
using namespace sys;
|
using namespace sys;
|
||||||
|
|
||||||
const TimeValue::SecondsType
|
const TimeValue::SecondsType
|
||||||
|
@ -22,8 +23,7 @@ const TimeValue::SecondsType
|
||||||
const TimeValue::SecondsType
|
const TimeValue::SecondsType
|
||||||
TimeValue::Win32ZeroTimeSeconds = -12591158400ULL;
|
TimeValue::Win32ZeroTimeSeconds = -12591158400ULL;
|
||||||
|
|
||||||
void
|
void TimeValue::normalize() {
|
||||||
TimeValue::normalize( void ) {
|
|
||||||
if ( nanos_ >= NANOSECONDS_PER_SECOND ) {
|
if ( nanos_ >= NANOSECONDS_PER_SECOND ) {
|
||||||
do {
|
do {
|
||||||
seconds_++;
|
seconds_++;
|
||||||
|
@ -45,7 +45,7 @@ TimeValue::normalize( void ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace llvm
|
||||||
|
|
||||||
/// Include the platform-specific portion of TimeValue class
|
/// Include the platform-specific portion of TimeValue class
|
||||||
#ifdef LLVM_ON_UNIX
|
#ifdef LLVM_ON_UNIX
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===- InstCombineAddSub.cpp ----------------------------------------------===//
|
//===- InstCombineAddSub.cpp ------------------------------------*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -17,6 +17,7 @@
|
||||||
#include "llvm/IR/DataLayout.h"
|
#include "llvm/IR/DataLayout.h"
|
||||||
#include "llvm/IR/GetElementPtrTypeIterator.h"
|
#include "llvm/IR/GetElementPtrTypeIterator.h"
|
||||||
#include "llvm/IR/PatternMatch.h"
|
#include "llvm/IR/PatternMatch.h"
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
using namespace PatternMatch;
|
using namespace PatternMatch;
|
||||||
|
|
||||||
|
@ -67,17 +68,17 @@ namespace {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool insaneIntVal(int V) { return V > 4 || V < -4; }
|
bool insaneIntVal(int V) { return V > 4 || V < -4; }
|
||||||
APFloat *getFpValPtr(void)
|
APFloat *getFpValPtr()
|
||||||
{ return reinterpret_cast<APFloat*>(&FpValBuf.buffer[0]); }
|
{ return reinterpret_cast<APFloat*>(&FpValBuf.buffer[0]); }
|
||||||
const APFloat *getFpValPtr(void) const
|
const APFloat *getFpValPtr() const
|
||||||
{ return reinterpret_cast<const APFloat*>(&FpValBuf.buffer[0]); }
|
{ return reinterpret_cast<const APFloat*>(&FpValBuf.buffer[0]); }
|
||||||
|
|
||||||
const APFloat &getFpVal(void) const {
|
const APFloat &getFpVal() const {
|
||||||
assert(IsFp && BufHasFpVal && "Incorret state");
|
assert(IsFp && BufHasFpVal && "Incorret state");
|
||||||
return *getFpValPtr();
|
return *getFpValPtr();
|
||||||
}
|
}
|
||||||
|
|
||||||
APFloat &getFpVal(void) {
|
APFloat &getFpVal() {
|
||||||
assert(IsFp && BufHasFpVal && "Incorret state");
|
assert(IsFp && BufHasFpVal && "Incorret state");
|
||||||
return *getFpValPtr();
|
return *getFpValPtr();
|
||||||
}
|
}
|
||||||
|
@ -92,8 +93,8 @@ namespace {
|
||||||
// TODO: We should get rid of this function when APFloat can be constructed
|
// TODO: We should get rid of this function when APFloat can be constructed
|
||||||
// from an *SIGNED* integer.
|
// from an *SIGNED* integer.
|
||||||
APFloat createAPFloatFromInt(const fltSemantics &Sem, int Val);
|
APFloat createAPFloatFromInt(const fltSemantics &Sem, int Val);
|
||||||
private:
|
|
||||||
|
|
||||||
|
private:
|
||||||
bool IsFp;
|
bool IsFp;
|
||||||
|
|
||||||
// True iff FpValBuf contains an instance of APFloat.
|
// True iff FpValBuf contains an instance of APFloat.
|
||||||
|
@ -114,10 +115,10 @@ namespace {
|
||||||
///
|
///
|
||||||
class FAddend {
|
class FAddend {
|
||||||
public:
|
public:
|
||||||
FAddend() { Val = nullptr; }
|
FAddend() : Val(nullptr) {}
|
||||||
|
|
||||||
Value *getSymVal (void) const { return Val; }
|
Value *getSymVal() const { return Val; }
|
||||||
const FAddendCoef &getCoef(void) const { return Coeff; }
|
const FAddendCoef &getCoef() const { return Coeff; }
|
||||||
|
|
||||||
bool isConstant() const { return Val == nullptr; }
|
bool isConstant() const { return Val == nullptr; }
|
||||||
bool isZero() const { return Coeff.isZero(); }
|
bool isZero() const { return Coeff.isZero(); }
|
||||||
|
@ -182,7 +183,6 @@ namespace {
|
||||||
InstCombiner::BuilderTy *Builder;
|
InstCombiner::BuilderTy *Builder;
|
||||||
Instruction *Instr;
|
Instruction *Instr;
|
||||||
|
|
||||||
private:
|
|
||||||
// Debugging stuff are clustered here.
|
// Debugging stuff are clustered here.
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
unsigned CreateInstrNum;
|
unsigned CreateInstrNum;
|
||||||
|
@ -193,7 +193,8 @@ namespace {
|
||||||
void incCreateInstNum() {}
|
void incCreateInstNum() {}
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
} // anonymous namespace
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
//
|
//
|
||||||
|
@ -602,7 +603,6 @@ Value *FAddCombine::simplify(Instruction *I) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Value *FAddCombine::simplifyFAdd(AddendVect& Addends, unsigned InstrQuota) {
|
Value *FAddCombine::simplifyFAdd(AddendVect& Addends, unsigned InstrQuota) {
|
||||||
|
|
||||||
unsigned AddendNum = Addends.size();
|
unsigned AddendNum = Addends.size();
|
||||||
assert(AddendNum <= 4 && "Too many addends");
|
assert(AddendNum <= 4 && "Too many addends");
|
||||||
|
|
||||||
|
@ -1421,7 +1421,6 @@ Instruction *InstCombiner::visitFAdd(BinaryOperator &I) {
|
||||||
return Changed ? &I : nullptr;
|
return Changed ? &I : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Optimize pointer differences into the same array into a size. Consider:
|
/// Optimize pointer differences into the same array into a size. Consider:
|
||||||
/// &A[10] - &A[0]: we should compile this to "10". LHS/RHS are the pointer
|
/// &A[10] - &A[0]: we should compile this to "10". LHS/RHS are the pointer
|
||||||
/// operands to the ptrtoint instructions for the LHS/RHS of the subtract.
|
/// operands to the ptrtoint instructions for the LHS/RHS of the subtract.
|
||||||
|
@ -1589,7 +1588,6 @@ Instruction *InstCombiner::visitSub(BinaryOperator &I) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
Value *Y;
|
Value *Y;
|
||||||
// X-(X+Y) == -Y X-(Y+X) == -Y
|
// X-(X+Y) == -Y X-(Y+X) == -Y
|
||||||
|
|
|
@ -261,7 +261,7 @@ Value *SafeStack::getOrCreateUnsafeStackPtr(IRBuilder<> &IRB, Function &F) {
|
||||||
// We use the initial-exec TLS model because we do not support the
|
// We use the initial-exec TLS model because we do not support the
|
||||||
// variable living anywhere other than in the main executable.
|
// variable living anywhere other than in the main executable.
|
||||||
UnsafeStackPtr = new GlobalVariable(
|
UnsafeStackPtr = new GlobalVariable(
|
||||||
M, StackPtrTy, false, GlobalValue::ExternalLinkage, 0,
|
M, StackPtrTy, false, GlobalValue::ExternalLinkage, nullptr,
|
||||||
UnsafeStackPtrVar, nullptr, GlobalValue::InitialExecTLSModel);
|
UnsafeStackPtrVar, nullptr, GlobalValue::InitialExecTLSModel);
|
||||||
} else {
|
} else {
|
||||||
// The variable exists, check its type and attributes.
|
// The variable exists, check its type and attributes.
|
||||||
|
|
|
@ -108,7 +108,7 @@ class MergedLoadStoreMotion : public FunctionPass {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static char ID; // Pass identification, replacement for typeid
|
static char ID; // Pass identification, replacement for typeid
|
||||||
explicit MergedLoadStoreMotion(void)
|
MergedLoadStoreMotion()
|
||||||
: FunctionPass(ID), MD(nullptr), MagicCompileTimeControl(250) {
|
: FunctionPass(ID), MD(nullptr), MagicCompileTimeControl(250) {
|
||||||
initializeMergedLoadStoreMotionPass(*PassRegistry::getPassRegistry());
|
initializeMergedLoadStoreMotionPass(*PassRegistry::getPassRegistry());
|
||||||
}
|
}
|
||||||
|
@ -159,7 +159,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
char MergedLoadStoreMotion::ID = 0;
|
char MergedLoadStoreMotion::ID = 0;
|
||||||
}
|
} // anonymous namespace
|
||||||
|
|
||||||
///
|
///
|
||||||
/// \brief createMergedLoadStoreMotionPass - The public interface to this file.
|
/// \brief createMergedLoadStoreMotionPass - The public interface to this file.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===- RemoteTarget.cpp - LLVM Remote process JIT execution --------------===//
|
//===- RemoteTarget.cpp - LLVM Remote process JIT execution -----*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -56,7 +56,7 @@ bool RemoteTarget::loadCode(uint64_t Address, const void *Data, size_t Size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RemoteTarget::executeCode(uint64_t Address, int &RetVal) {
|
bool RemoteTarget::executeCode(uint64_t Address, int &RetVal) {
|
||||||
int (*fn)(void) = (int(*)(void))Address;
|
int (*fn)() = (int(*)())Address;
|
||||||
RetVal = fn();
|
RetVal = fn();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===-- llvm-mc.cpp - Machine Code Hacking Driver -------------------------===//
|
//===-- llvm-mc.cpp - Machine Code Hacking Driver ---------------*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -39,6 +39,7 @@
|
||||||
#include "llvm/Support/TargetRegistry.h"
|
#include "llvm/Support/TargetRegistry.h"
|
||||||
#include "llvm/Support/TargetSelect.h"
|
#include "llvm/Support/TargetSelect.h"
|
||||||
#include "llvm/Support/ToolOutputFile.h"
|
#include "llvm/Support/ToolOutputFile.h"
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
static cl::opt<std::string>
|
static cl::opt<std::string>
|
||||||
|
@ -234,7 +235,7 @@ static void setDwarfDebugFlags(int argc, char **argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string DwarfDebugProducer;
|
static std::string DwarfDebugProducer;
|
||||||
static void setDwarfDebugProducer(void) {
|
static void setDwarfDebugProducer() {
|
||||||
if(!getenv("DEBUG_PRODUCER"))
|
if(!getenv("DEBUG_PRODUCER"))
|
||||||
return;
|
return;
|
||||||
DwarfDebugProducer += getenv("DEBUG_PRODUCER");
|
DwarfDebugProducer += getenv("DEBUG_PRODUCER");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===-- llvm-size.cpp - Print the size of each object section -------------===//
|
//===-- llvm-size.cpp - Print the size of each object section ---*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -30,6 +30,7 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <system_error>
|
#include <system_error>
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
using namespace object;
|
using namespace object;
|
||||||
|
|
||||||
|
@ -98,7 +99,7 @@ static size_t getNumLengthAsString(uint64_t num) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @brief Return the printing format for the Radix.
|
/// @brief Return the printing format for the Radix.
|
||||||
static const char *getRadixFmt(void) {
|
static const char *getRadixFmt() {
|
||||||
switch (Radix) {
|
switch (Radix) {
|
||||||
case octal:
|
case octal:
|
||||||
return PRIo64;
|
return PRIo64;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===- MCJITMultipeModuleTest.cpp - Unit tests for the MCJIT-----*- C++ -*-===//
|
//===- MCJITMultipeModuleTest.cpp - Unit tests for the MCJIT ----*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -228,13 +228,13 @@ TEST_F(MCJITMultipleModuleTest, two_module_global_variables_case) {
|
||||||
uint64_t FBPtr = TheJIT->getFunctionAddress(FB->getName().str());
|
uint64_t FBPtr = TheJIT->getFunctionAddress(FB->getName().str());
|
||||||
TheJIT->finalizeObject();
|
TheJIT->finalizeObject();
|
||||||
EXPECT_TRUE(0 != FBPtr);
|
EXPECT_TRUE(0 != FBPtr);
|
||||||
int32_t(*FuncPtr)(void) = (int32_t(*)(void))FBPtr;
|
int32_t(*FuncPtr)() = (int32_t(*)())FBPtr;
|
||||||
EXPECT_EQ(initialNum, FuncPtr())
|
EXPECT_EQ(initialNum, FuncPtr())
|
||||||
<< "Invalid value for global returned from JITted function in module B";
|
<< "Invalid value for global returned from JITted function in module B";
|
||||||
|
|
||||||
uint64_t FAPtr = TheJIT->getFunctionAddress(FA->getName().str());
|
uint64_t FAPtr = TheJIT->getFunctionAddress(FA->getName().str());
|
||||||
EXPECT_TRUE(0 != FAPtr);
|
EXPECT_TRUE(0 != FAPtr);
|
||||||
FuncPtr = (int32_t(*)(void))FAPtr;
|
FuncPtr = (int32_t(*)())FAPtr;
|
||||||
EXPECT_EQ(initialNum, FuncPtr())
|
EXPECT_EQ(initialNum, FuncPtr())
|
||||||
<< "Invalid value for global returned from JITted function in module A";
|
<< "Invalid value for global returned from JITted function in module A";
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,6 @@ private:
|
||||||
|
|
||||||
class MCJITObjectCacheTest : public testing::Test, public MCJITTestBase {
|
class MCJITObjectCacheTest : public testing::Test, public MCJITTestBase {
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
OriginalRC = 6,
|
OriginalRC = 6,
|
||||||
ReplacementRC = 7
|
ReplacementRC = 7
|
||||||
|
@ -101,7 +100,7 @@ protected:
|
||||||
EXPECT_TRUE(nullptr != vPtr)
|
EXPECT_TRUE(nullptr != vPtr)
|
||||||
<< "Unable to get pointer to main() from JIT";
|
<< "Unable to get pointer to main() from JIT";
|
||||||
|
|
||||||
int (*FuncPtr)(void) = (int(*)(void))(intptr_t)vPtr;
|
int (*FuncPtr)() = (int(*)())(intptr_t)vPtr;
|
||||||
int returnCode = FuncPtr();
|
int returnCode = FuncPtr();
|
||||||
EXPECT_EQ(returnCode, ExpectedRC);
|
EXPECT_EQ(returnCode, ExpectedRC);
|
||||||
}
|
}
|
||||||
|
@ -119,7 +118,6 @@ TEST_F(MCJITObjectCacheTest, SetNullObjectCache) {
|
||||||
compileAndRun();
|
compileAndRun();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST_F(MCJITObjectCacheTest, VerifyBasicObjectCaching) {
|
TEST_F(MCJITObjectCacheTest, VerifyBasicObjectCaching) {
|
||||||
SKIP_UNSUPPORTED_PLATFORM;
|
SKIP_UNSUPPORTED_PLATFORM;
|
||||||
|
|
||||||
|
@ -228,5 +226,4 @@ TEST_F(MCJITObjectCacheTest, VerifyNonLoadFromCache) {
|
||||||
EXPECT_FALSE(Cache->wereDuplicatesInserted());
|
EXPECT_FALSE(Cache->wereDuplicatesInserted());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // Namespace
|
} // end anonymous namespace
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ TEST_F(MCJITTest, run_main) {
|
||||||
EXPECT_TRUE(0 != ptr)
|
EXPECT_TRUE(0 != ptr)
|
||||||
<< "Unable to get pointer to main() from JIT";
|
<< "Unable to get pointer to main() from JIT";
|
||||||
|
|
||||||
int (*FuncPtr)(void) = (int(*)(void))ptr;
|
int (*FuncPtr)() = (int(*)())ptr;
|
||||||
int returnCode = FuncPtr();
|
int returnCode = FuncPtr();
|
||||||
EXPECT_EQ(returnCode, rc);
|
EXPECT_EQ(returnCode, rc);
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ TEST_F(MCJITTest, return_global) {
|
||||||
uint64_t rgvPtr = TheJIT->getFunctionAddress(ReturnGlobal->getName().str());
|
uint64_t rgvPtr = TheJIT->getFunctionAddress(ReturnGlobal->getName().str());
|
||||||
EXPECT_TRUE(0 != rgvPtr);
|
EXPECT_TRUE(0 != rgvPtr);
|
||||||
|
|
||||||
int32_t(*FuncPtr)(void) = (int32_t(*)(void))rgvPtr;
|
int32_t(*FuncPtr)() = (int32_t(*)())rgvPtr;
|
||||||
EXPECT_EQ(initialNum, FuncPtr())
|
EXPECT_EQ(initialNum, FuncPtr())
|
||||||
<< "Invalid value for global returned from JITted function";
|
<< "Invalid value for global returned from JITted function";
|
||||||
}
|
}
|
||||||
|
@ -181,7 +181,7 @@ TEST_F(MCJITTest, multiple_functions) {
|
||||||
EXPECT_TRUE(0 != ptr)
|
EXPECT_TRUE(0 != ptr)
|
||||||
<< "Unable to get pointer to outer function from JIT";
|
<< "Unable to get pointer to outer function from JIT";
|
||||||
|
|
||||||
int32_t(*FuncPtr)(void) = (int32_t(*)(void))ptr;
|
int32_t(*FuncPtr)() = (int32_t(*)())ptr;
|
||||||
EXPECT_EQ(innerRetVal, FuncPtr())
|
EXPECT_EQ(innerRetVal, FuncPtr())
|
||||||
<< "Incorrect result returned from function";
|
<< "Incorrect result returned from function";
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(TargetMachine, LLVMTargetMachineRef)
|
||||||
|
|
||||||
class OrcCAPIExecutionTest : public testing::Test, public OrcExecutionTest {
|
class OrcCAPIExecutionTest : public testing::Test, public OrcExecutionTest {
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
std::unique_ptr<Module> createTestModule(const Triple &TT) {
|
std::unique_ptr<Module> createTestModule(const Triple &TT) {
|
||||||
ModuleBuilder MB(getGlobalContext(), TT.str(), "");
|
ModuleBuilder MB(getGlobalContext(), TT.str(), "");
|
||||||
Function *TestFunc = MB.createFunctionDecl<int()>("testFunc");
|
Function *TestFunc = MB.createFunctionDecl<int()>("testFunc");
|
||||||
|
@ -37,9 +36,9 @@ protected:
|
||||||
return MB.takeModule();
|
return MB.takeModule();
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef int (*MainFnTy)(void);
|
typedef int (*MainFnTy)();
|
||||||
|
|
||||||
static int myTestFuncImpl(void) {
|
static int myTestFuncImpl() {
|
||||||
return 42;
|
return 42;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,16 +65,15 @@ protected:
|
||||||
auto *ET = CCtx->APIExecTest;
|
auto *ET = CCtx->APIExecTest;
|
||||||
CCtx->M = ET->createTestModule(ET->TM->getTargetTriple());
|
CCtx->M = ET->createTestModule(ET->TM->getTargetTriple());
|
||||||
CCtx->H = LLVMOrcAddEagerlyCompiledIR(JITStack, wrap(CCtx->M.get()),
|
CCtx->H = LLVMOrcAddEagerlyCompiledIR(JITStack, wrap(CCtx->M.get()),
|
||||||
myResolver, 0);
|
myResolver, nullptr);
|
||||||
CCtx->Compiled = true;
|
CCtx->Compiled = true;
|
||||||
LLVMOrcTargetAddress MainAddr = LLVMOrcGetSymbolAddress(JITStack, "main");
|
LLVMOrcTargetAddress MainAddr = LLVMOrcGetSymbolAddress(JITStack, "main");
|
||||||
LLVMOrcSetIndirectStubPointer(JITStack, "foo", MainAddr);
|
LLVMOrcSetIndirectStubPointer(JITStack, "foo", MainAddr);
|
||||||
return MainAddr;
|
return MainAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
char *OrcCAPIExecutionTest::testFuncName = 0;
|
char *OrcCAPIExecutionTest::testFuncName = nullptr;
|
||||||
|
|
||||||
TEST_F(OrcCAPIExecutionTest, TestEagerIRCompilation) {
|
TEST_F(OrcCAPIExecutionTest, TestEagerIRCompilation) {
|
||||||
if (!TM)
|
if (!TM)
|
||||||
|
@ -89,7 +87,7 @@ TEST_F(OrcCAPIExecutionTest, TestEagerIRCompilation) {
|
||||||
LLVMOrcGetMangledSymbol(JIT, &testFuncName, "testFunc");
|
LLVMOrcGetMangledSymbol(JIT, &testFuncName, "testFunc");
|
||||||
|
|
||||||
LLVMOrcModuleHandle H =
|
LLVMOrcModuleHandle H =
|
||||||
LLVMOrcAddEagerlyCompiledIR(JIT, wrap(M.get()), myResolver, 0);
|
LLVMOrcAddEagerlyCompiledIR(JIT, wrap(M.get()), myResolver, nullptr);
|
||||||
MainFnTy MainFn = (MainFnTy)LLVMOrcGetSymbolAddress(JIT, "main");
|
MainFnTy MainFn = (MainFnTy)LLVMOrcGetSymbolAddress(JIT, "main");
|
||||||
int Result = MainFn();
|
int Result = MainFn();
|
||||||
EXPECT_EQ(Result, 42)
|
EXPECT_EQ(Result, 42)
|
||||||
|
@ -113,7 +111,7 @@ TEST_F(OrcCAPIExecutionTest, TestLazyIRCompilation) {
|
||||||
LLVMOrcGetMangledSymbol(JIT, &testFuncName, "testFunc");
|
LLVMOrcGetMangledSymbol(JIT, &testFuncName, "testFunc");
|
||||||
|
|
||||||
LLVMOrcModuleHandle H =
|
LLVMOrcModuleHandle H =
|
||||||
LLVMOrcAddLazilyCompiledIR(JIT, wrap(M.get()), myResolver, 0);
|
LLVMOrcAddLazilyCompiledIR(JIT, wrap(M.get()), myResolver, nullptr);
|
||||||
MainFnTy MainFn = (MainFnTy)LLVMOrcGetSymbolAddress(JIT, "main");
|
MainFnTy MainFn = (MainFnTy)LLVMOrcGetSymbolAddress(JIT, "main");
|
||||||
int Result = MainFn();
|
int Result = MainFn();
|
||||||
EXPECT_EQ(Result, 42)
|
EXPECT_EQ(Result, 42)
|
||||||
|
@ -158,4 +156,4 @@ TEST_F(OrcCAPIExecutionTest, TestDirectCallbacksAPI) {
|
||||||
LLVMOrcDisposeInstance(JIT);
|
LLVMOrcDisposeInstance(JIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace llvm
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//===- unittest/ProfileData/InstrProfTest.cpp -------------------------------=//
|
//===- unittest/ProfileData/InstrProfTest.cpp -------------------*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
|
@ -132,14 +132,14 @@ TEST_F(InstrProfTest, get_icall_data_read_write) {
|
||||||
InstrProfValueData VD0[] = {{(uint64_t) "callee1", 1},
|
InstrProfValueData VD0[] = {{(uint64_t) "callee1", 1},
|
||||||
{(uint64_t) "callee2", 2},
|
{(uint64_t) "callee2", 2},
|
||||||
{(uint64_t) "callee3", 3}};
|
{(uint64_t) "callee3", 3}};
|
||||||
Record1.addValueData(IPVK_IndirectCallTarget, 0, VD0, 3, 0);
|
Record1.addValueData(IPVK_IndirectCallTarget, 0, VD0, 3, nullptr);
|
||||||
// No valeu profile data at the second site.
|
// No valeu profile data at the second site.
|
||||||
Record1.addValueData(IPVK_IndirectCallTarget, 1, 0, 0, 0);
|
Record1.addValueData(IPVK_IndirectCallTarget, 1, nullptr, 0, nullptr);
|
||||||
InstrProfValueData VD2[] = {{(uint64_t) "callee1", 1},
|
InstrProfValueData VD2[] = {{(uint64_t) "callee1", 1},
|
||||||
{(uint64_t) "callee2", 2}};
|
{(uint64_t) "callee2", 2}};
|
||||||
Record1.addValueData(IPVK_IndirectCallTarget, 2, VD2, 2, 0);
|
Record1.addValueData(IPVK_IndirectCallTarget, 2, VD2, 2, nullptr);
|
||||||
InstrProfValueData VD3[] = {{(uint64_t) "callee1", 1}};
|
InstrProfValueData VD3[] = {{(uint64_t) "callee1", 1}};
|
||||||
Record1.addValueData(IPVK_IndirectCallTarget, 3, VD3, 1, 0);
|
Record1.addValueData(IPVK_IndirectCallTarget, 3, VD3, 1, nullptr);
|
||||||
|
|
||||||
Writer.addRecord(std::move(Record1));
|
Writer.addRecord(std::move(Record1));
|
||||||
Writer.addRecord(std::move(Record2));
|
Writer.addRecord(std::move(Record2));
|
||||||
|
@ -183,44 +183,44 @@ TEST_F(InstrProfTest, get_icall_data_merge1) {
|
||||||
{(uint64_t) "callee2", 2},
|
{(uint64_t) "callee2", 2},
|
||||||
{(uint64_t) "callee3", 3},
|
{(uint64_t) "callee3", 3},
|
||||||
{(uint64_t) "callee4", 4}};
|
{(uint64_t) "callee4", 4}};
|
||||||
Record11.addValueData(IPVK_IndirectCallTarget, 0, VD0, 4, 0);
|
Record11.addValueData(IPVK_IndirectCallTarget, 0, VD0, 4, nullptr);
|
||||||
|
|
||||||
// No valeu profile data at the second site.
|
// No valeu profile data at the second site.
|
||||||
Record11.addValueData(IPVK_IndirectCallTarget, 1, 0, 0, 0);
|
Record11.addValueData(IPVK_IndirectCallTarget, 1, nullptr, 0, nullptr);
|
||||||
|
|
||||||
InstrProfValueData VD2[] = {{(uint64_t) "callee1", 1},
|
InstrProfValueData VD2[] = {{(uint64_t) "callee1", 1},
|
||||||
{(uint64_t) "callee2", 2},
|
{(uint64_t) "callee2", 2},
|
||||||
{(uint64_t) "callee3", 3}};
|
{(uint64_t) "callee3", 3}};
|
||||||
Record11.addValueData(IPVK_IndirectCallTarget, 2, VD2, 3, 0);
|
Record11.addValueData(IPVK_IndirectCallTarget, 2, VD2, 3, nullptr);
|
||||||
|
|
||||||
InstrProfValueData VD3[] = {{(uint64_t) "callee1", 1}};
|
InstrProfValueData VD3[] = {{(uint64_t) "callee1", 1}};
|
||||||
Record11.addValueData(IPVK_IndirectCallTarget, 3, VD3, 1, 0);
|
Record11.addValueData(IPVK_IndirectCallTarget, 3, VD3, 1, nullptr);
|
||||||
|
|
||||||
InstrProfValueData VD4[] = {{(uint64_t) "callee1", 1},
|
InstrProfValueData VD4[] = {{(uint64_t) "callee1", 1},
|
||||||
{(uint64_t) "callee2", 2},
|
{(uint64_t) "callee2", 2},
|
||||||
{(uint64_t) "callee3", 3}};
|
{(uint64_t) "callee3", 3}};
|
||||||
Record11.addValueData(IPVK_IndirectCallTarget, 4, VD4, 3, 0);
|
Record11.addValueData(IPVK_IndirectCallTarget, 4, VD4, 3, nullptr);
|
||||||
|
|
||||||
// A differnt record for the same caller.
|
// A differnt record for the same caller.
|
||||||
Record12.reserveSites(IPVK_IndirectCallTarget, 5);
|
Record12.reserveSites(IPVK_IndirectCallTarget, 5);
|
||||||
InstrProfValueData VD02[] = {{(uint64_t) "callee2", 5},
|
InstrProfValueData VD02[] = {{(uint64_t) "callee2", 5},
|
||||||
{(uint64_t) "callee3", 3}};
|
{(uint64_t) "callee3", 3}};
|
||||||
Record12.addValueData(IPVK_IndirectCallTarget, 0, VD02, 2, 0);
|
Record12.addValueData(IPVK_IndirectCallTarget, 0, VD02, 2, nullptr);
|
||||||
|
|
||||||
// No valeu profile data at the second site.
|
// No valeu profile data at the second site.
|
||||||
Record12.addValueData(IPVK_IndirectCallTarget, 1, 0, 0, 0);
|
Record12.addValueData(IPVK_IndirectCallTarget, 1, nullptr, 0, nullptr);
|
||||||
|
|
||||||
InstrProfValueData VD22[] = {{(uint64_t) "callee2", 1},
|
InstrProfValueData VD22[] = {{(uint64_t) "callee2", 1},
|
||||||
{(uint64_t) "callee3", 3},
|
{(uint64_t) "callee3", 3},
|
||||||
{(uint64_t) "callee4", 4}};
|
{(uint64_t) "callee4", 4}};
|
||||||
Record12.addValueData(IPVK_IndirectCallTarget, 2, VD22, 3, 0);
|
Record12.addValueData(IPVK_IndirectCallTarget, 2, VD22, 3, nullptr);
|
||||||
|
|
||||||
Record12.addValueData(IPVK_IndirectCallTarget, 3, 0, 0, 0);
|
Record12.addValueData(IPVK_IndirectCallTarget, 3, nullptr, 0, nullptr);
|
||||||
|
|
||||||
InstrProfValueData VD42[] = {{(uint64_t) "callee1", 1},
|
InstrProfValueData VD42[] = {{(uint64_t) "callee1", 1},
|
||||||
{(uint64_t) "callee2", 2},
|
{(uint64_t) "callee2", 2},
|
||||||
{(uint64_t) "callee3", 3}};
|
{(uint64_t) "callee3", 3}};
|
||||||
Record12.addValueData(IPVK_IndirectCallTarget, 4, VD42, 3, 0);
|
Record12.addValueData(IPVK_IndirectCallTarget, 4, VD42, 3, nullptr);
|
||||||
|
|
||||||
Writer.addRecord(std::move(Record11));
|
Writer.addRecord(std::move(Record11));
|
||||||
// Merge profile data.
|
// Merge profile data.
|
||||||
|
|
|
@ -149,10 +149,10 @@ void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) {
|
||||||
PE = I->first.end(); PI != PE; ++PI) {
|
PE = I->first.end(); PI != PE; ++PI) {
|
||||||
OS << "\"" << *PI << "\" COMMA ";
|
OS << "\"" << *PI << "\" COMMA ";
|
||||||
}
|
}
|
||||||
OS << "0})\n";
|
OS << "nullptr})\n";
|
||||||
}
|
}
|
||||||
OS << "#undef COMMA\n";
|
OS << "#undef COMMA\n";
|
||||||
OS << "#endif\n\n";
|
OS << "#endif // PREFIX\n\n";
|
||||||
|
|
||||||
OS << "/////////\n";
|
OS << "/////////\n";
|
||||||
OS << "// Groups\n\n";
|
OS << "// Groups\n\n";
|
||||||
|
@ -164,7 +164,7 @@ void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) {
|
||||||
OS << "OPTION(";
|
OS << "OPTION(";
|
||||||
|
|
||||||
// The option prefix;
|
// The option prefix;
|
||||||
OS << "0";
|
OS << "nullptr";
|
||||||
|
|
||||||
// The option string.
|
// The option string.
|
||||||
OS << ", \"" << R.getValueAsString("Name") << '"';
|
OS << ", \"" << R.getValueAsString("Name") << '"';
|
||||||
|
@ -183,7 +183,7 @@ void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) {
|
||||||
OS << "INVALID";
|
OS << "INVALID";
|
||||||
|
|
||||||
// The other option arguments (unused for groups).
|
// The other option arguments (unused for groups).
|
||||||
OS << ", INVALID, 0, 0, 0";
|
OS << ", INVALID, nullptr, 0, 0";
|
||||||
|
|
||||||
// The option help text.
|
// The option help text.
|
||||||
if (!isa<UnsetInit>(R.getValueInit("HelpText"))) {
|
if (!isa<UnsetInit>(R.getValueInit("HelpText"))) {
|
||||||
|
@ -191,10 +191,10 @@ void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) {
|
||||||
OS << " ";
|
OS << " ";
|
||||||
write_cstring(OS, R.getValueAsString("HelpText"));
|
write_cstring(OS, R.getValueAsString("HelpText"));
|
||||||
} else
|
} else
|
||||||
OS << ", 0";
|
OS << ", nullptr";
|
||||||
|
|
||||||
// The option meta-variable name (unused).
|
// The option meta-variable name (unused).
|
||||||
OS << ", 0)\n";
|
OS << ", nullptr)\n";
|
||||||
}
|
}
|
||||||
OS << "\n";
|
OS << "\n";
|
||||||
|
|
||||||
|
@ -242,7 +242,7 @@ void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) {
|
||||||
OS << ", ";
|
OS << ", ";
|
||||||
std::vector<std::string> AliasArgs = R.getValueAsListOfStrings("AliasArgs");
|
std::vector<std::string> AliasArgs = R.getValueAsListOfStrings("AliasArgs");
|
||||||
if (AliasArgs.size() == 0) {
|
if (AliasArgs.size() == 0) {
|
||||||
OS << "0";
|
OS << "nullptr";
|
||||||
} else {
|
} else {
|
||||||
OS << "\"";
|
OS << "\"";
|
||||||
for (size_t i = 0, e = AliasArgs.size(); i != e; ++i)
|
for (size_t i = 0, e = AliasArgs.size(); i != e; ++i)
|
||||||
|
@ -274,17 +274,17 @@ void EmitOptParser(RecordKeeper &Records, raw_ostream &OS) {
|
||||||
OS << " ";
|
OS << " ";
|
||||||
write_cstring(OS, R.getValueAsString("HelpText"));
|
write_cstring(OS, R.getValueAsString("HelpText"));
|
||||||
} else
|
} else
|
||||||
OS << ", 0";
|
OS << ", nullptr";
|
||||||
|
|
||||||
// The option meta-variable name.
|
// The option meta-variable name.
|
||||||
OS << ", ";
|
OS << ", ";
|
||||||
if (!isa<UnsetInit>(R.getValueInit("MetaVarName")))
|
if (!isa<UnsetInit>(R.getValueInit("MetaVarName")))
|
||||||
write_cstring(OS, R.getValueAsString("MetaVarName"));
|
write_cstring(OS, R.getValueAsString("MetaVarName"));
|
||||||
else
|
else
|
||||||
OS << "0";
|
OS << "nullptr";
|
||||||
|
|
||||||
OS << ")\n";
|
OS << ")\n";
|
||||||
}
|
}
|
||||||
OS << "#endif\n";
|
OS << "#endif // OPTION\n";
|
||||||
}
|
}
|
||||||
} // end namespace llvm
|
} // end namespace llvm
|
||||||
|
|
Loading…
Reference in New Issue