mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			114 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //===--- llvm/Analysis/DIBuilder.h - Debug Information Builder --*- C++ -*-===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| //
 | |
| // This file defines a DIBuilder that is useful for creating debugging 
 | |
| // information entries in LLVM IR form.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #ifndef LLVM_ANALYSIS_DIBUILDER_H
 | |
| #define LLVM_ANALYSIS_DIBUILDER_H
 | |
| 
 | |
| #include "llvm/Support/DataTypes.h"
 | |
| #include "llvm/ADT/StringRef.h"
 | |
| 
 | |
| namespace llvm {
 | |
|   class Module;
 | |
|   class LLVMContext;
 | |
|   class MDNode;
 | |
|   class StringRef;
 | |
|   class DIDescriptor;
 | |
|   class DIFile;
 | |
|   class DIEnumerator;
 | |
|   class DIType;
 | |
| 
 | |
|   class DIBuilder {
 | |
|     private:
 | |
|     Module &M;
 | |
|     LLVMContext & VMContext;
 | |
|     MDNode *TheCU;
 | |
| 
 | |
|     DIBuilder(const DIBuilder &);       // DO NOT IMPLEMENT
 | |
|     void operator=(const DIBuilder &);  // DO NOT IMPLEMENT
 | |
| 
 | |
|     public:
 | |
|     explicit DIBuilder(Module &M);
 | |
|     const MDNode *getCU() { return TheCU; }
 | |
| 
 | |
|     /// CreateCompileUnit - A CompileUnit provides an anchor for all debugging
 | |
|     /// information generated during this instance of compilation.
 | |
|     /// @param Lang     Source programming language, eg. dwarf::DW_LANG_C99
 | |
|     /// @param File     File name
 | |
|     /// @param Dir      Directory
 | |
|     /// @param Producer String identify producer of debugging information. 
 | |
|     ///                 Usuall this is a compiler version string.
 | |
|     /// @param isOptimized A boolean flag which indicates whether optimization
 | |
|     ///                    is ON or not.
 | |
|     /// @param Flags    This string lists command line options. This string is 
 | |
|     ///                 directly embedded in debug info output which may be used
 | |
|     ///                 by a tool analyzing generated debugging information.
 | |
|     /// @param RV       This indicates runtime version for languages like 
 | |
|     ///                 Objective-C.
 | |
|     void CreateCompileUnit(unsigned Lang, StringRef File, StringRef Dir, 
 | |
|                            StringRef Producer,
 | |
|                            bool isOptimized, StringRef Flags, unsigned RV);
 | |
| 
 | |
|     /// CreateFile - Create a file descriptor to hold debugging information
 | |
|     /// for a file.
 | |
|     DIFile CreateFile(StringRef Filename, StringRef Directory);
 | |
|                            
 | |
|     /// CreateEnumerator - Create a single enumerator value.
 | |
|     DIEnumerator CreateEnumerator(StringRef Name, uint64_t Val);
 | |
| 
 | |
|     /// CreateBasicType - Create debugging information entry for a basic 
 | |
|     /// type.
 | |
|     /// @param Name        Type name.
 | |
|     /// @param SizeInBits  Size of the type.
 | |
|     /// @param AlignInBits Type alignment.
 | |
|     /// @param Encoding    DWARF encoding code, e.g. dwarf::DW_ATE_float.
 | |
|     DIType CreateBasicType(StringRef Name, uint64_t SizeInBits, 
 | |
|                            uint64_t AlignInBits, unsigned Encoding);
 | |
| 
 | |
|     /// CreateQualifiedType - Create debugging information entry for a qualified
 | |
|     /// type, e.g. 'const int'.
 | |
|     /// @param Tag         Tag identifing type, e.g. dwarf::TAG_volatile_type
 | |
|     /// @param FromTy      Base Type.
 | |
|     DIType CreateQualifiedType(unsigned Tag, DIType FromTy);
 | |
| 
 | |
|     /// CreatePointerType - Create debugging information entry for a pointer.
 | |
|     DIType CreatePointerType(DIType PointeeTy, uint64_t SizeInBits,
 | |
|                              uint64_t AlignInBits = 0, StringRef Name = StringRef());
 | |
| 
 | |
|     /// CreateReferenceType - Create debugging information entry for a reference.
 | |
|     DIType CreateReferenceType(DIType RTy);
 | |
| 
 | |
|     /// CreateTypedef - Create debugging information entry for a typedef.
 | |
|     DIType CreateTypedef(DIType Ty, StringRef Name, DIFile F, unsigned LineNo);
 | |
| 
 | |
|     /// CreateFriend - Create debugging information entry for a 'friend'.
 | |
|     DIType CreateFriend(DIType Ty, DIType FriendTy);
 | |
| 
 | |
|     /// CreateInheritance - Create debugging information entry to establish
 | |
|     /// inheritance relationship between two types.
 | |
|     DIType CreateInheritance(DIType Ty, DIType BaseTy, uint64_t BaseOffset,
 | |
|                              unsigned Flags);
 | |
| 
 | |
|     /// CreateMemberType - Create debugging information entry for a member.
 | |
|     DIType CreateMemberType(DIDescriptor Context, StringRef Name, DIFile F,
 | |
|                             unsigned LineNumber, uint64_t SizeInBits, 
 | |
|                             uint64_t AlignInBits, uint64_t OffsetInBits, 
 | |
|                             unsigned Flags, DIType Ty);
 | |
| 
 | |
|     /// CreateArtificialType - Create a new DIType with "artificial" flag set.
 | |
|     DIType CreateArtificialType(DIType Ty);
 | |
|   };
 | |
| } // end namespace llvm
 | |
| 
 | |
| #endif
 |