mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 08:17:40 +00:00
Add support to preserve type info for the variables that are removed by the optimizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103798 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1028,7 +1028,7 @@ DIVariable DIFactory::CreateVariable(unsigned Tag, DIDescriptor Context,
|
||||
StringRef Name,
|
||||
DIFile F,
|
||||
unsigned LineNo,
|
||||
DIType Ty) {
|
||||
DIType Ty, bool OptimizedBuild) {
|
||||
Value *Elts[] = {
|
||||
GetTagConstant(Tag),
|
||||
Context,
|
||||
@@ -1037,7 +1037,12 @@ DIVariable DIFactory::CreateVariable(unsigned Tag, DIDescriptor Context,
|
||||
ConstantInt::get(Type::getInt32Ty(VMContext), LineNo),
|
||||
Ty,
|
||||
};
|
||||
return DIVariable(MDNode::get(VMContext, &Elts[0], 6));
|
||||
MDNode *Node = MDNode::get(VMContext, &Elts[0], 6);
|
||||
if (OptimizedBuild) {
|
||||
NamedMDNode *NMD = M.getOrInsertNamedMetadata("llvm.dbg.lv");
|
||||
NMD->addOperand(Node);
|
||||
}
|
||||
return DIVariable(Node);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user