mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Make LoadAndStorePromoter preserve debug info and create llvm.dbg.values when
promoting allocas to SSA variables. Fixes <rdar://problem/9479036>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131953 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -20,6 +20,7 @@
|
||||
#include "llvm/Instructions.h"
|
||||
#include "llvm/Intrinsics.h"
|
||||
#include "llvm/IntrinsicInst.h"
|
||||
#include "llvm/Metadata.h"
|
||||
#include "llvm/Operator.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/ADT/SmallPtrSet.h"
|
||||
@ -877,3 +878,15 @@ bool llvm::LowerDbgDeclare(Function &F) {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// FindAllocaDbgDeclare - Finds the llvm.dbg.declare intrinsic describing the
|
||||
/// alloca 'V', if any.
|
||||
DbgDeclareInst *llvm::FindAllocaDbgDeclare(Value *V) {
|
||||
if (MDNode *DebugNode = MDNode::getIfExists(V->getContext(), V))
|
||||
for (Value::use_iterator UI = DebugNode->use_begin(),
|
||||
E = DebugNode->use_end(); UI != E; ++UI)
|
||||
if (DbgDeclareInst *DDI = dyn_cast<DbgDeclareInst>(*UI))
|
||||
return DDI;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user