[Lldb-commits] [lldb] df8a986 - [lldb][NFC] Remove TypeSystemClang::GetASTContext calls in IRForTarget

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Thu Jan 30 03:07:40 PST 2020


Author: Raphael Isemann
Date: 2020-01-30T12:07:19+01:00
New Revision: df8a986f533d6b1726e79acfa53ba854943704c3

URL: https://github.com/llvm/llvm-project/commit/df8a986f533d6b1726e79acfa53ba854943704c3
DIFF: https://github.com/llvm/llvm-project/commit/df8a986f533d6b1726e79acfa53ba854943704c3.diff

LOG: [lldb][NFC] Remove TypeSystemClang::GetASTContext calls in IRForTarget

Similar to previous commits, this just replaces the lookup in the
global map with the reference to the TypeSystemClang instance we already
have in this context.

Added: 
    

Modified: 
    lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
    lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
index 52fb0d1f4eae..2b711db7a5a5 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
@@ -356,6 +356,10 @@ class ClangASTSource : public clang::ExternalASTSource,
   ///     True if lookup succeeded; false otherwise.
   ClangASTImporter::DeclOrigin GetDeclOrigin(const clang::Decl *decl);
 
+  /// Returns the TypeSystem that uses this ClangASTSource instance as it's
+  /// ExternalASTSource.
+  TypeSystemClang *GetTypeSystem() const { return m_clang_ast_context; }
+
 protected:
   bool FindObjCMethodDeclsWithOrigin(
       unsigned int current_id, NameSearchContext &context,

diff  --git a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
index 0a0314dd4b75..bcf13e5c877c 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
@@ -283,17 +283,13 @@ bool IRForTarget::CreateResultVariable(llvm::Function &llvm_function) {
       clang::QualType element_qual_type = pointer_pointertype->getPointeeType();
 
       m_result_type = lldb_private::TypeFromParser(
-          element_qual_type.getAsOpaquePtr(),
-          lldb_private::TypeSystemClang::GetASTContext(
-              &result_decl->getASTContext()));
+          m_decl_map->GetTypeSystem()->GetType(element_qual_type));
     } else if (pointer_objcobjpointertype) {
       clang::QualType element_qual_type =
           clang::QualType(pointer_objcobjpointertype->getObjectType(), 0);
 
       m_result_type = lldb_private::TypeFromParser(
-          element_qual_type.getAsOpaquePtr(),
-          lldb_private::TypeSystemClang::GetASTContext(
-              &result_decl->getASTContext()));
+          m_decl_map->GetTypeSystem()->GetType(element_qual_type));
     } else {
       LLDB_LOG(log, "Expected result to have pointer type, but it did not");
 
@@ -305,9 +301,7 @@ bool IRForTarget::CreateResultVariable(llvm::Function &llvm_function) {
     }
   } else {
     m_result_type = lldb_private::TypeFromParser(
-        result_var->getType().getAsOpaquePtr(),
-        lldb_private::TypeSystemClang::GetASTContext(
-            &result_decl->getASTContext()));
+        m_decl_map->GetTypeSystem()->GetType(result_var->getType()));
   }
 
   lldb::TargetSP target_sp(m_execution_unit.GetTarget());
@@ -1094,8 +1088,7 @@ bool IRForTarget::RewritePersistentAlloc(llvm::Instruction *persistent_alloc) {
   clang::VarDecl *decl = reinterpret_cast<clang::VarDecl *>(ptr);
 
   lldb_private::TypeFromParser result_decl_type(
-      decl->getType().getAsOpaquePtr(),
-      lldb_private::TypeSystemClang::GetASTContext(&decl->getASTContext()));
+      m_decl_map->GetTypeSystem()->GetType(decl->getType()));
 
   StringRef decl_name(decl->getName());
   lldb_private::ConstString persistent_variable_name(decl_name.data(),
@@ -1225,10 +1218,8 @@ bool IRForTarget::MaybeHandleVariable(Value *llvm_value_ptr) {
     if (value_decl == nullptr)
       return false;
 
-    lldb_private::CompilerType compiler_type(
-        lldb_private::TypeSystemClang::GetASTContext(
-            &value_decl->getASTContext()),
-        value_decl->getType().getAsOpaquePtr());
+    lldb_private::CompilerType compiler_type =
+        m_decl_map->GetTypeSystem()->GetType(value_decl->getType());
 
     const Type *value_type = nullptr;
 


        


More information about the lldb-commits mailing list