mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
IR: Separate helpers for string operands, NFC
llvm-svn: 227846
This commit is contained in:
parent
25a7e6c730
commit
25ffa9ed9c
@ -100,6 +100,12 @@ protected:
|
||||
}
|
||||
~DebugNode() {}
|
||||
|
||||
StringRef getStringOperand(unsigned I) const {
|
||||
if (auto *S = cast_or_null<MDString>(getOperand(I)))
|
||||
return S->getString();
|
||||
return StringRef();
|
||||
}
|
||||
|
||||
public:
|
||||
unsigned getTag() const { return SubclassData16; }
|
||||
|
||||
@ -171,11 +177,7 @@ public:
|
||||
TempGenericDebugNode clone() const { return cloneImpl(); }
|
||||
|
||||
unsigned getTag() const { return SubclassData16; }
|
||||
StringRef getHeader() const {
|
||||
if (auto *S = cast_or_null<MDString>(getOperand(0)))
|
||||
return S->getString();
|
||||
return StringRef();
|
||||
}
|
||||
StringRef getHeader() const { return getStringOperand(0); }
|
||||
|
||||
op_iterator dwarf_op_begin() const { return op_begin() + 1; }
|
||||
op_iterator dwarf_op_end() const { return op_end(); }
|
||||
|
@ -71,6 +71,13 @@ MDLocation *MDLocation::getImpl(LLVMContext &Context, unsigned Line,
|
||||
Storage, Context.pImpl->MDLocations);
|
||||
}
|
||||
|
||||
/// \brief Get the MDString, or nullptr if the string is empty.
|
||||
static MDString *getCanonicalMDString(LLVMContext &Context, StringRef S) {
|
||||
if (S.empty())
|
||||
return nullptr;
|
||||
return MDString::get(Context, S);
|
||||
}
|
||||
|
||||
GenericDebugNode *GenericDebugNode::getImpl(LLVMContext &Context, unsigned Tag,
|
||||
StringRef Header,
|
||||
ArrayRef<Metadata *> DwarfOps,
|
||||
@ -89,8 +96,7 @@ GenericDebugNode *GenericDebugNode::getImpl(LLVMContext &Context, unsigned Tag,
|
||||
}
|
||||
|
||||
// Use a nullptr for empty headers.
|
||||
Metadata *PreOps[] = {Header.empty() ? nullptr
|
||||
: MDString::get(Context, Header)};
|
||||
Metadata *PreOps[] = {getCanonicalMDString(Context, Header)};
|
||||
return storeImpl(new (DwarfOps.size() + 1) GenericDebugNode(
|
||||
Context, Storage, Hash, Tag, PreOps, DwarfOps),
|
||||
Storage, Context.pImpl->GenericDebugNodes);
|
||||
|
Loading…
Reference in New Issue
Block a user