mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Extract scope information from the variable itself, instead of relying on alloca or llvm.dbg.declare location.
While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83684 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -42,6 +42,7 @@
|
||||
#include "llvm/CodeGen/MachineLocation.h"
|
||||
#include "llvm/GlobalValue.h"
|
||||
#include "llvm/Pass.h"
|
||||
#include "llvm/Metadata.h"
|
||||
|
||||
namespace llvm {
|
||||
|
||||
@ -147,7 +148,7 @@ class MachineModuleInfo : public ImmutablePass {
|
||||
public:
|
||||
static char ID; // Pass identification, replacement for typeid
|
||||
|
||||
typedef DenseMap<MDNode *, std::pair<MDNode *, unsigned> > VariableDbgInfoMapTy;
|
||||
typedef SmallVector< std::pair< WeakMetadataVH, unsigned>, 4 > VariableDbgInfoMapTy;
|
||||
VariableDbgInfoMapTy VariableDbgInfo;
|
||||
|
||||
MachineModuleInfo();
|
||||
@ -332,9 +333,8 @@ public:
|
||||
|
||||
/// setVariableDbgInfo - Collect information used to emit debugging information
|
||||
/// of a variable.
|
||||
void setVariableDbgInfo(MDNode *N, MDNode *L, unsigned S) {
|
||||
if (N && L)
|
||||
VariableDbgInfo[N] = std::make_pair(L, S);
|
||||
void setVariableDbgInfo(MDNode *N, unsigned S) {
|
||||
VariableDbgInfo.push_back(std::make_pair(N, S));
|
||||
}
|
||||
|
||||
VariableDbgInfoMapTy &getVariableDbgInfo() { return VariableDbgInfo; }
|
||||
|
Reference in New Issue
Block a user