mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-29 16:04:33 +00:00
Transforms: Stop using DIDescriptor::is*() and auto-casting
Same as r234255, but for lib/Analysis and lib/Transforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234257 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1545953510
commit
573ca050d2
@ -103,8 +103,7 @@ void ModuleDebugInfoPrinter::print(raw_ostream &O, const Module *M) const {
|
|||||||
if (!T.getName().empty())
|
if (!T.getName().empty())
|
||||||
O << ' ' << T.getName();
|
O << ' ' << T.getName();
|
||||||
printFile(O, T.getFilename(), T.getDirectory(), T.getLineNumber());
|
printFile(O, T.getFilename(), T.getDirectory(), T.getLineNumber());
|
||||||
if (T.isBasicType()) {
|
if (DIBasicType BT = dyn_cast<MDBasicType>(T)) {
|
||||||
DIBasicType BT(T.get());
|
|
||||||
O << " ";
|
O << " ";
|
||||||
if (const char *Encoding =
|
if (const char *Encoding =
|
||||||
dwarf::AttributeEncodingString(BT.getEncoding()))
|
dwarf::AttributeEncodingString(BT.getEncoding()))
|
||||||
@ -118,8 +117,7 @@ void ModuleDebugInfoPrinter::print(raw_ostream &O, const Module *M) const {
|
|||||||
else
|
else
|
||||||
O << "unknown-tag(" << T.getTag() << ")";
|
O << "unknown-tag(" << T.getTag() << ")";
|
||||||
}
|
}
|
||||||
if (T.isCompositeType()) {
|
if (DICompositeType CT = dyn_cast<MDCompositeType>(T)) {
|
||||||
DICompositeType CT(T.get());
|
|
||||||
if (auto *S = CT.getIdentifier())
|
if (auto *S = CT.getIdentifier())
|
||||||
O << " (identifier: '" << S->getString() << "')";
|
O << " (identifier: '" << S->getString() << "')";
|
||||||
}
|
}
|
||||||
|
@ -307,10 +307,10 @@ bool StripDeadDebugInfo::runOnModule(Module &M) {
|
|||||||
|
|
||||||
for (DICompileUnit DIC : F.compile_units()) {
|
for (DICompileUnit DIC : F.compile_units()) {
|
||||||
// Create our live subprogram list.
|
// Create our live subprogram list.
|
||||||
DIArray SPs = DIC.getSubprograms();
|
MDSubprogramArray SPs = DIC->getSubprograms();
|
||||||
bool SubprogramChange = false;
|
bool SubprogramChange = false;
|
||||||
for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) {
|
for (unsigned i = 0, e = SPs.size(); i != e; ++i) {
|
||||||
DISubprogram DISP(SPs.getElement(i));
|
DISubprogram DISP = SPs[i];
|
||||||
|
|
||||||
// Make sure we visit each subprogram only once.
|
// Make sure we visit each subprogram only once.
|
||||||
if (!VisitedSet.insert(DISP).second)
|
if (!VisitedSet.insert(DISP).second)
|
||||||
@ -324,10 +324,10 @@ bool StripDeadDebugInfo::runOnModule(Module &M) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create our live global variable list.
|
// Create our live global variable list.
|
||||||
DIArray GVs = DIC.getGlobalVariables();
|
MDGlobalVariableArray GVs = DIC->getGlobalVariables();
|
||||||
bool GlobalVariableChange = false;
|
bool GlobalVariableChange = false;
|
||||||
for (unsigned i = 0, e = GVs.getNumElements(); i != e; ++i) {
|
for (unsigned i = 0, e = GVs.size(); i != e; ++i) {
|
||||||
DIGlobalVariable DIG(GVs.getElement(i));
|
DIGlobalVariable DIG = GVs[i];
|
||||||
|
|
||||||
// Make sure we only visit each global variable only once.
|
// Make sure we only visit each global variable only once.
|
||||||
if (!VisitedSet.insert(DIG).second)
|
if (!VisitedSet.insert(DIG).second)
|
||||||
|
@ -487,7 +487,7 @@ void GCOVProfiler::emitProfileNotes() {
|
|||||||
// this pass over the original .o's as they're produced, or run it after
|
// this pass over the original .o's as they're produced, or run it after
|
||||||
// LTO, we'll generate the same .gcno files.
|
// LTO, we'll generate the same .gcno files.
|
||||||
|
|
||||||
DICompileUnit CU(CU_Nodes->getOperand(i));
|
DICompileUnit CU = cast<MDCompileUnit>(CU_Nodes->getOperand(i));
|
||||||
std::error_code EC;
|
std::error_code EC;
|
||||||
raw_fd_ostream out(mangleName(CU, "gcno"), EC, sys::fs::F_None);
|
raw_fd_ostream out(mangleName(CU, "gcno"), EC, sys::fs::F_None);
|
||||||
std::string EdgeDestinations;
|
std::string EdgeDestinations;
|
||||||
@ -495,9 +495,7 @@ void GCOVProfiler::emitProfileNotes() {
|
|||||||
DIArray SPs = CU.getSubprograms();
|
DIArray SPs = CU.getSubprograms();
|
||||||
unsigned FunctionIdent = 0;
|
unsigned FunctionIdent = 0;
|
||||||
for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) {
|
for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) {
|
||||||
DISubprogram SP(SPs.getElement(i));
|
DISubprogram SP = cast_or_null<MDSubprogram>(SPs.getElement(i));
|
||||||
assert((!SP || SP.isSubprogram()) &&
|
|
||||||
"A MDNode in subprograms of a CU should be null or a DISubprogram.");
|
|
||||||
if (!SP)
|
if (!SP)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -577,13 +575,11 @@ bool GCOVProfiler::emitProfileArcs() {
|
|||||||
bool Result = false;
|
bool Result = false;
|
||||||
bool InsertIndCounterIncrCode = false;
|
bool InsertIndCounterIncrCode = false;
|
||||||
for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) {
|
for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) {
|
||||||
DICompileUnit CU(CU_Nodes->getOperand(i));
|
DICompileUnit CU = cast<MDCompileUnit>(CU_Nodes->getOperand(i));
|
||||||
DIArray SPs = CU.getSubprograms();
|
DIArray SPs = CU.getSubprograms();
|
||||||
SmallVector<std::pair<GlobalVariable *, MDNode *>, 8> CountersBySP;
|
SmallVector<std::pair<GlobalVariable *, MDNode *>, 8> CountersBySP;
|
||||||
for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) {
|
for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i) {
|
||||||
DISubprogram SP(SPs.getElement(i));
|
DISubprogram SP = cast_or_null<MDSubprogram>(SPs.getElement(i));
|
||||||
assert((!SP || SP.isSubprogram()) &&
|
|
||||||
"A MDNode in subprograms of a CU should be null or a DISubprogram.");
|
|
||||||
if (!SP)
|
if (!SP)
|
||||||
continue;
|
continue;
|
||||||
Function *F = SP.getFunction();
|
Function *F = SP.getFunction();
|
||||||
@ -859,7 +855,7 @@ Function *GCOVProfiler::insertCounterWriteout(
|
|||||||
NamedMDNode *CU_Nodes = M->getNamedMetadata("llvm.dbg.cu");
|
NamedMDNode *CU_Nodes = M->getNamedMetadata("llvm.dbg.cu");
|
||||||
if (CU_Nodes) {
|
if (CU_Nodes) {
|
||||||
for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) {
|
for (unsigned i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i) {
|
||||||
DICompileUnit CU(CU_Nodes->getOperand(i));
|
DICompileUnit CU = cast<MDCompileUnit>(CU_Nodes->getOperand(i));
|
||||||
std::string FilenameGcda = mangleName(CU, "gcda");
|
std::string FilenameGcda = mangleName(CU, "gcda");
|
||||||
uint32_t CfgChecksum = FileChecksums.empty() ? 0 : FileChecksums[i];
|
uint32_t CfgChecksum = FileChecksums.empty() ? 0 : FileChecksums[i];
|
||||||
Builder.CreateCall3(StartFile,
|
Builder.CreateCall3(StartFile,
|
||||||
@ -867,7 +863,7 @@ Function *GCOVProfiler::insertCounterWriteout(
|
|||||||
Builder.CreateGlobalStringPtr(ReversedVersion),
|
Builder.CreateGlobalStringPtr(ReversedVersion),
|
||||||
Builder.getInt32(CfgChecksum));
|
Builder.getInt32(CfgChecksum));
|
||||||
for (unsigned j = 0, e = CountersBySP.size(); j != e; ++j) {
|
for (unsigned j = 0, e = CountersBySP.size(); j != e; ++j) {
|
||||||
DISubprogram SP(CountersBySP[j].second);
|
DISubprogram SP = cast_or_null<MDSubprogram>(CountersBySP[j].second);
|
||||||
uint32_t FuncChecksum = Funcs.empty() ? 0 : Funcs[j]->getFuncChecksum();
|
uint32_t FuncChecksum = Funcs.empty() ? 0 : Funcs[j]->getFuncChecksum();
|
||||||
Builder.CreateCall5(
|
Builder.CreateCall5(
|
||||||
EmitFunction, Builder.getInt32(j),
|
EmitFunction, Builder.getInt32(j),
|
||||||
|
@ -642,8 +642,7 @@ void SampleProfileLoader::propagateWeights(Function &F) {
|
|||||||
/// \returns the line number where \p F is defined. If it returns 0,
|
/// \returns the line number where \p F is defined. If it returns 0,
|
||||||
/// it means that there is no debug information available for \p F.
|
/// it means that there is no debug information available for \p F.
|
||||||
unsigned SampleProfileLoader::getFunctionLoc(Function &F) {
|
unsigned SampleProfileLoader::getFunctionLoc(Function &F) {
|
||||||
DISubprogram S = getDISubprogram(&F);
|
if (DISubprogram S = getDISubprogram(&F))
|
||||||
if (S.isSubprogram())
|
|
||||||
return S.getLineNumber();
|
return S.getLineNumber();
|
||||||
|
|
||||||
// If could not find the start of \p F, emit a diagnostic to inform the user
|
// If could not find the start of \p F, emit a diagnostic to inform the user
|
||||||
|
@ -186,7 +186,8 @@ static void CloneDebugInfoMetadata(Function *NewFunc, const Function *OldFunc,
|
|||||||
// Ensure that OldFunc appears in the map.
|
// Ensure that OldFunc appears in the map.
|
||||||
// (if it's already there it must point to NewFunc anyway)
|
// (if it's already there it must point to NewFunc anyway)
|
||||||
VMap[OldFunc] = NewFunc;
|
VMap[OldFunc] = NewFunc;
|
||||||
DISubprogram NewSubprogram(MapMetadata(OldSubprogramMDNode, VMap));
|
DISubprogram NewSubprogram =
|
||||||
|
cast<MDSubprogram>(MapMetadata(OldSubprogramMDNode, VMap));
|
||||||
|
|
||||||
for (DICompileUnit CU : Finder.compile_units()) {
|
for (DICompileUnit CU : Finder.compile_units()) {
|
||||||
DIArray Subprograms(CU.getSubprograms());
|
DIArray Subprograms(CU.getSubprograms());
|
||||||
|
@ -998,10 +998,8 @@ static bool LdStHasDebugValue(DIVariable &DIVar, Instruction *I) {
|
|||||||
/// that has an associated llvm.dbg.decl intrinsic.
|
/// that has an associated llvm.dbg.decl intrinsic.
|
||||||
bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,
|
bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,
|
||||||
StoreInst *SI, DIBuilder &Builder) {
|
StoreInst *SI, DIBuilder &Builder) {
|
||||||
DIVariable DIVar(DDI->getVariable());
|
DIVariable DIVar = DDI->getVariable();
|
||||||
DIExpression DIExpr(DDI->getExpression());
|
DIExpression DIExpr = DDI->getExpression();
|
||||||
assert((!DIVar || DIVar.isVariable()) &&
|
|
||||||
"Variable in DbgDeclareInst should be either null or a DIVariable.");
|
|
||||||
if (!DIVar)
|
if (!DIVar)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -1029,10 +1027,8 @@ bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,
|
|||||||
/// that has an associated llvm.dbg.decl intrinsic.
|
/// that has an associated llvm.dbg.decl intrinsic.
|
||||||
bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,
|
bool llvm::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,
|
||||||
LoadInst *LI, DIBuilder &Builder) {
|
LoadInst *LI, DIBuilder &Builder) {
|
||||||
DIVariable DIVar(DDI->getVariable());
|
DIVariable DIVar = DDI->getVariable();
|
||||||
DIExpression DIExpr(DDI->getExpression());
|
DIExpression DIExpr = DDI->getExpression();
|
||||||
assert((!DIVar || DIVar.isVariable()) &&
|
|
||||||
"Variable in DbgDeclareInst should be either null or a DIVariable.");
|
|
||||||
if (!DIVar)
|
if (!DIVar)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -1112,10 +1108,8 @@ bool llvm::replaceDbgDeclareForAlloca(AllocaInst *AI, Value *NewAllocaAddress,
|
|||||||
if (!DDI)
|
if (!DDI)
|
||||||
return false;
|
return false;
|
||||||
DebugLoc Loc = DDI->getDebugLoc();
|
DebugLoc Loc = DDI->getDebugLoc();
|
||||||
DIVariable DIVar(DDI->getVariable());
|
DIVariable DIVar = DDI->getVariable();
|
||||||
DIExpression DIExpr(DDI->getExpression());
|
DIExpression DIExpr = DDI->getExpression();
|
||||||
assert((!DIVar || DIVar.isVariable()) &&
|
|
||||||
"Variable in DbgDeclareInst should be either null or a DIVariable.");
|
|
||||||
if (!DIVar)
|
if (!DIVar)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user