summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-12-08 20:42:44 +0000
committerDevang Patel <dpatel@apple.com>2010-12-08 20:42:44 +0000
commitb68c6231e9de34a796f5a984b2e21d90697f3b31 (patch)
tree01f2bd5a0fa89b0fb7dba4bc714e38ed38748823 /llvm/include
parent3c68561453b161ee8858cc329ad06fb0bb8eaa22 (diff)
downloadbcm5719-llvm-b68c6231e9de34a796f5a984b2e21d90697f3b31.tar.gz
bcm5719-llvm-b68c6231e9de34a796f5a984b2e21d90697f3b31.zip
Add support to create debug info for functions and methods.
llvm-svn: 121281
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Analysis/DIBuilder.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/llvm/include/llvm/Analysis/DIBuilder.h b/llvm/include/llvm/Analysis/DIBuilder.h
index 0140f9313ce..2fb9ed0e966 100644
--- a/llvm/include/llvm/Analysis/DIBuilder.h
+++ b/llvm/include/llvm/Analysis/DIBuilder.h
@@ -37,6 +37,7 @@ namespace llvm {
class DIVariable;
class DISubrange;
class DILexicalBlock;
+ class DISubprogram;
class DIBuilder {
private:
@@ -315,6 +316,57 @@ namespace llvm {
DIType Ty, Value *const *Addr,
unsigned NumAddr);
+ /// CreateFunction - Create a new descriptor for the specified subprogram.
+ /// See comments in DISubprogram for descriptions of these fields.
+ /// @param Scope Function scope.
+ /// @param Name Function name.
+ /// @param LinkageName Mangled function name.
+ /// @param File File where this variable is defined.
+ /// @param LineNo Line number.
+ /// @param Ty Function type.
+ /// @param isLocalToUnit True if this function is not externally visible..
+ /// @param isDefinition True if this is a function definition.
+ /// @param Flags e.g. is this function prototyped or not.
+ /// This flags are used to emit dwarf attributes.
+ /// @param isOptimized True if optimization is ON.
+ /// @param Fn llvm::Function pointer.
+ DISubprogram CreateFunction(DIDescriptor Scope, StringRef Name,
+ StringRef LinkageName,
+ DIFile File, unsigned LineNo,
+ DIType Ty, bool isLocalToUnit,
+ bool isDefinition,
+ unsigned Flags = 0,
+ bool isOptimized = false,
+ Function *Fn = 0);
+
+ /// CreateMethod - Create a new descriptor for the specified C++ method.
+ /// See comments in DISubprogram for descriptions of these fields.
+ /// @param Scope Function scope.
+ /// @param Name Function name.
+ /// @param LinkageName Mangled function name.
+ /// @param File File where this variable is defined.
+ /// @param LineNo Line number.
+ /// @param Ty Function type.
+ /// @param isLocalToUnit True if this function is not externally visible..
+ /// @param isDefinition True if this is a function definition.
+ /// @param Virtuality Attributes describing virutallness. e.g. pure
+ /// virtual function.
+ /// @param VTableIndex Index no of this method in virtual table.
+ /// @param VTableHolder Type that holds vtable.
+ /// @param Flags e.g. is this function prototyped or not.
+ /// This flags are used to emit dwarf attributes.
+ /// @param isOptimized True if optimization is ON.
+ /// @param Fn llvm::Function pointer.
+ DISubprogram CreateMethod(DIDescriptor Scope, StringRef Name,
+ StringRef LinkageName,
+ DIFile File, unsigned LineNo,
+ DIType Ty, bool isLocalToUnit,
+ bool isDefinition,
+ unsigned Virtuality = 0, unsigned VTableIndex = 0,
+ MDNode *VTableHolder = 0,
+ unsigned Flags = 0,
+ bool isOptimized = false,
+ Function *Fn = 0);
/// CreateNameSpace - This creates new descriptor for a namespace
/// with the specified parent scope.
OpenPOWER on IntegriCloud