Method InsertDeclare
InsertDeclare(Value, DILocalVariable, DILocation, Instruction)
Inserts an declare debug record for the given instruction
DebugRecord InsertDeclare(Value storage, DILocalVariable varInfo, DILocation location, Instruction insertBefore)
Parameters
storage
ValueValue the declaration is bound to
varInfo
DILocalVariableDILocalVariable for
storage
location
DILocationDILocationfor the variable
insertBefore
InstructionInstruction to insert the declaration before
Returns
- DebugRecord
CallInstruction for the call to llvm.dbg.declare
Remarks
This adds a call to the llvm.dbg.declare intrinsic. The call has no impact on the actual machine code generated, as it is removed or ignored for actual target instruction selection. Instead this provides a means to bind the LLVM Debug information metadata to a particular LLVM Value that allows the transformation and optimization passes to track the debug information. Thus, even with optimized code the actual debug information is retained.
- See Also
InsertDeclare(Value, DILocalVariable, DIExpression, DILocation, Instruction)
Inserts an llvm.dbg.declare instruction before the given instruction
DebugRecord InsertDeclare(Value storage, DILocalVariable varInfo, DIExpression expression, DILocation location, Instruction insertBefore)
Parameters
storage
ValueValue the declaration is bound to
varInfo
DILocalVariableDILocalVariable for
storage
expression
DIExpressionDIExpression for a debugger to use when extracting the value
location
DILocationDILocationfor the variable
insertBefore
InstructionInstruction to insert the declaration before
Returns
- DebugRecord
CallInstruction for the call to llvm.dbg.declare
Remarks
This adds a call to the llvm.dbg.declare intrinsic. The call has no impact on the actual machine code generated, as it is removed or ignored for actual target instruction selection. Instead this provides a means to bind the LLVM Debug information metadata to a particular LLVM Value that allows the transformation and optimization passes to track the debug information. Thus, even with optimized code the actual debug information is retained.
- See Also
InsertDeclare(Value, DILocalVariable, DILocation, BasicBlock)
Inserts a DebugRecord before the given instruction
DebugRecord InsertDeclare(Value storage, DILocalVariable varInfo, DILocation location, BasicBlock insertAtEnd)
Parameters
storage
ValueValue the declaration is bound to
varInfo
DILocalVariableDILocalVariable for
storage
location
DILocationDILocationfor the variable
insertAtEnd
BasicBlockBasicBlock to insert the declaration at the end of
Returns
- DebugRecord
CallInstruction for the call to llvm.dbg.declare
Remarks
This adds a call to the llvm.dbg.declare intrinsic. The call has no impact on the actual machine code generated, as it is removed or ignored for actual target instruction selection. Instead this provides a means to bind the LLVM Debug information metadata to a particular LLVM Value that allows the transformation and optimization passes to track the debug information. Thus, even with optimized code the actual debug information is retained.
- See Also
InsertDeclare(Value, DILocalVariable, DIExpression, DILocation, BasicBlock)
Inserts a debug record before the given instruction
DebugRecord InsertDeclare(Value storage, DILocalVariable varInfo, DIExpression expression, DILocation location, BasicBlock insertAtEnd)
Parameters
storage
ValueValue the declaration is bound to
varInfo
DILocalVariableDILocalVariable for
storage
expression
DIExpressionDIExpression for a debugger to use when extracting the value
location
DILocationDILocationfor the variable
insertAtEnd
BasicBlockBasicBlock to insert the declaration at the end of
Returns
- DebugRecord
CallInstruction for the call to llvm.dbg.declare
Remarks
This adds a call to the llvm.dbg.declare intrinsic.
note
The call has no impact on the actual machine code generated, as it is removed or ignored for actual target instruction selection. Instead this provides a means to bind the LLVM Debug information metadata to a particular LLVM Value that allows the transformation and optimization passes to track the debug information. Thus, even with optimized code the actual debug information is retained.
- See Also