mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-21 03:00:45 +00:00
Add getModuleFlag(StringRef Key) to query a module flag given Key.
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186470 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
45193d39d9
commit
c8cfaa1625
@ -405,6 +405,10 @@ public:
|
||||
/// getModuleFlagsMetadata - Returns the module flags in the provided vector.
|
||||
void getModuleFlagsMetadata(SmallVectorImpl<ModuleFlagEntry> &Flags) const;
|
||||
|
||||
/// Return the corresponding value if Key appears in module flags, otherwise
|
||||
/// return null.
|
||||
Value *getModuleFlag(StringRef Key) const;
|
||||
|
||||
/// getModuleFlagsMetadata - Returns the NamedMDNode in the module that
|
||||
/// represents module-level flags. This method returns null if there are no
|
||||
/// module-level flags.
|
||||
|
@ -164,17 +164,10 @@ DIType DbgVariable::getType() const {
|
||||
|
||||
/// Return Dwarf Version by checking module flags.
|
||||
static unsigned getDwarfVersionFromModule(const Module *M) {
|
||||
SmallVector<Module::ModuleFlagEntry, 8> ModuleFlags;
|
||||
M->getModuleFlagsMetadata(ModuleFlags);
|
||||
for (unsigned I = 0, E = ModuleFlags.size(); I < E; ++I) {
|
||||
const Module::ModuleFlagEntry &MFE = ModuleFlags[I];
|
||||
StringRef Key = MFE.Key->getString();
|
||||
Value *Val = MFE.Val;
|
||||
|
||||
if (Key == "Dwarf Version")
|
||||
return cast<ConstantInt>(Val)->getZExtValue();
|
||||
}
|
||||
return dwarf::DWARF_VERSION;
|
||||
Value *Val = M->getModuleFlag("Dwarf Version");
|
||||
if (!Val)
|
||||
return dwarf::DWARF_VERSION;
|
||||
return cast<ConstantInt>(Val)->getZExtValue();
|
||||
}
|
||||
|
||||
DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
||||
|
@ -325,6 +325,19 @@ getModuleFlagsMetadata(SmallVectorImpl<ModuleFlagEntry> &Flags) const {
|
||||
}
|
||||
}
|
||||
|
||||
/// Return the corresponding value if Key appears in module flags, otherwise
|
||||
/// return null.
|
||||
Value *Module::getModuleFlag(StringRef Key) const {
|
||||
SmallVector<Module::ModuleFlagEntry, 8> ModuleFlags;
|
||||
getModuleFlagsMetadata(ModuleFlags);
|
||||
for (unsigned I = 0, E = ModuleFlags.size(); I < E; ++I) {
|
||||
const ModuleFlagEntry &MFE = ModuleFlags[I];
|
||||
if (Key == MFE.Key->getString())
|
||||
return MFE.Val;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// getModuleFlagsMetadata - Returns the NamedMDNode in the module that
|
||||
/// represents module-level flags. This method returns null if there are no
|
||||
/// module-level flags.
|
||||
|
Loading…
x
Reference in New Issue
Block a user