diff options
Diffstat (limited to 'llvm/lib/IR/Module.cpp')
| -rw-r--r-- | llvm/lib/IR/Module.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/IR/Module.cpp b/llvm/lib/IR/Module.cpp index f97dd18c736c..16c79442f82f 100644 --- a/llvm/lib/IR/Module.cpp +++ b/llvm/lib/IR/Module.cpp @@ -54,6 +54,8 @@ using namespace llvm; +extern cl::opt<bool> UseNewDbgInfoFormat; + //===----------------------------------------------------------------------===// // Methods to implement the globals and functions lists. // @@ -72,7 +74,7 @@ template class llvm::SymbolTableListTraits<GlobalIFunc>; Module::Module(StringRef MID, LLVMContext &C) : Context(C), ValSymTab(std::make_unique<ValueSymbolTable>(-1)), ModuleID(std::string(MID)), SourceFileName(std::string(MID)), DL(""), - IsNewDbgInfoFormat(false) { + IsNewDbgInfoFormat(UseNewDbgInfoFormat) { Context.addModule(this); } @@ -397,6 +399,15 @@ void Module::setModuleFlag(ModFlagBehavior Behavior, StringRef Key, } addModuleFlag(Behavior, Key, Val); } +void Module::setModuleFlag(ModFlagBehavior Behavior, StringRef Key, + Constant *Val) { + setModuleFlag(Behavior, Key, ConstantAsMetadata::get(Val)); +} +void Module::setModuleFlag(ModFlagBehavior Behavior, StringRef Key, + uint32_t Val) { + Type *Int32Ty = Type::getInt32Ty(Context); + setModuleFlag(Behavior, Key, ConstantInt::get(Int32Ty, Val)); +} void Module::setDataLayout(StringRef Desc) { DL.reset(Desc); |
