From a844bdeab31ef04221e7ef59a8467893584cc14d Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Sat, 2 Feb 2008 04:07:54 +0000 Subject: SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46659 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/MachineModuleInfo.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'include/llvm/CodeGen/MachineModuleInfo.h') diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h index ee94e51a2b..8d0a34b1f3 100644 --- a/include/llvm/CodeGen/MachineModuleInfo.h +++ b/include/llvm/CodeGen/MachineModuleInfo.h @@ -844,6 +844,10 @@ public: /// serialization of a DebugInfoDesc. bool Verify(Value *V); bool Verify(GlobalVariable *GV); + + /// isVerified - Return true if the specified GV has already been + /// verified as a debug information descriptor. + bool isVerified(GlobalVariable *GV); }; //===----------------------------------------------------------------------===// @@ -1073,7 +1077,11 @@ public: /// Verify - Verify that a Value is debug information descriptor. /// - bool Verify(Value *V); + bool Verify(Value *V) { return VR.Verify(V); } + + /// isVerified - Return true if the specified GV has already been + /// verified as a debug information descriptor. + bool isVerified(GlobalVariable *GV) { return VR.isVerified(GV); } /// AnalyzeModule - Scan the module for global debug information. /// @@ -1197,7 +1205,7 @@ public: /// RecordVariable - Indicate the declaration of a local variable. /// - void RecordVariable(Value *V, unsigned FrameIndex); + void RecordVariable(GlobalValue *GV, unsigned FrameIndex); /// getRootScope - Return current functions root scope. /// -- cgit v1.2.3