mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Add a DIModule metadata node to the IR.
It is meant to be used to record modules @imported by the current compile unit, so a debugger an import the same modules to replicate this environment before dropping into the expression evaluator. DIModule is a sibling to DINamespace and behaves quite similarly. In addition to the name of the module it also records the module configuration details that are necessary to uniquely identify the module. This includes the configuration macros (e.g., -DNDEBUG), the include path where the module.map file is to be found, and the isysroot. The idea is that the backend will turn this into a DW_TAG_module. http://reviews.llvm.org/D9614 rdar://problem/20965932 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241017 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -566,6 +566,20 @@ namespace llvm {
|
||||
DINamespace *createNameSpace(DIScope *Scope, StringRef Name, DIFile *File,
|
||||
unsigned LineNo);
|
||||
|
||||
/// createModule - This creates new descriptor for a module
|
||||
/// with the specified parent scope.
|
||||
/// @param Scope Parent scope
|
||||
/// @param Name Name of this module
|
||||
/// @param ConfigurationMacros
|
||||
/// A space-separated shell-quoted list of -D macro
|
||||
/// definitions as they would appear on a command line.
|
||||
/// @param IncludePath The path to the module map file.
|
||||
/// @param ISysRoot The clang system root (value of -isysroot).
|
||||
DIModule *createModule(DIScope *Scope, StringRef Name,
|
||||
StringRef ConfigurationMacros,
|
||||
StringRef IncludePath,
|
||||
StringRef ISysRoot);
|
||||
|
||||
/// createLexicalBlockFile - This creates a descriptor for a lexical
|
||||
/// block with a new file attached. This merely extends the existing
|
||||
/// lexical block as it crosses a file.
|
||||
@@ -598,6 +612,13 @@ namespace llvm {
|
||||
DIImportedEntity *createImportedModule(DIScope *Context,
|
||||
DIImportedEntity *NS, unsigned Line);
|
||||
|
||||
/// \brief Create a descriptor for an imported module.
|
||||
/// @param Context The scope this module is imported into
|
||||
/// @param M The module being imported here
|
||||
/// @param Line Line number
|
||||
DIImportedEntity *createImportedModule(DIScope *Context, DIModule *M,
|
||||
unsigned Line);
|
||||
|
||||
/// \brief Create a descriptor for an imported function.
|
||||
/// @param Context The scope this module is imported into
|
||||
/// @param Decl The declaration (or definition) of a function, type, or
|
||||
|
Reference in New Issue
Block a user