|
LLDB mainline
|
#include <RegisterTypeBuilderClang.h>
Public Member Functions | |
| RegisterTypeBuilderClang (Target &target) | |
| llvm::StringRef | GetPluginName () override |
| CompilerType | GetRegisterType (const RegisterInfo ®_info) override |
| Do not cache the returned CompilerType. | |
| Public Member Functions inherited from lldb_private::RegisterTypeBuilder | |
| ~RegisterTypeBuilder () override=default | |
| Public Member Functions inherited from lldb_private::PluginInterface | |
| PluginInterface ()=default | |
| virtual | ~PluginInterface ()=default |
| PluginInterface (const PluginInterface &)=delete | |
| PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
| static void | Initialize () |
| static void | Terminate () |
| static llvm::StringRef | GetPluginNameStatic () |
| static llvm::StringRef | GetPluginDescriptionStatic () |
| static lldb::RegisterTypeBuilderSP | CreateInstance (Target &target) |
Private Member Functions | |
| CompilerType | BuildEnumType (const RegisterTypeEnum *enum_type_info, uint32_t register_byte_size, lldb::TypeSystemClangSP type_system) |
| CompilerType | BuildFlagsType (const RegisterTypeFlags *flags_info, uint32_t register_byte_size, lldb::TypeSystemClangSP type_system) |
| std::optional< CompilerType > | GetExistingCompilerType (const RegisterType *register_type, uint32_t register_byte_size) |
Private Attributes | |
| Target & | m_target |
| llvm::SmallDenseMap< std::pair< uint64_t, uint32_t >, CompilerType, 8 > | m_type_cache |
| std::weak_ptr< TypeSystemClang > | m_cached_type_system |
Additional Inherited Members | |
| Protected Member Functions inherited from lldb_private::RegisterTypeBuilder | |
| RegisterTypeBuilder ()=default | |
Definition at line 18 of file RegisterTypeBuilderClang.h.
| RegisterTypeBuilderClang::RegisterTypeBuilderClang | ( | Target & | target | ) |
Definition at line 33 of file RegisterTypeBuilderClang.cpp.
References m_target.
Referenced by Initialize().
|
private |
Definition at line 37 of file RegisterTypeBuilderClang.cpp.
References lldb::eEncodingUint, lldb_private::RegisterTypeEnum::GetEnumerators(), GetExistingCompilerType(), lldb_private::RegisterType::GetUID(), and m_type_cache.
Referenced by BuildFlagsType(), and GetRegisterType().
|
private |
Definition at line 67 of file RegisterTypeBuilderClang.cpp.
References BuildEnumType(), lldb::eEncodingUint, lldb::eLanguageTypeC, lldb_private::CompilerType::GetByteSize(), GetExistingCompilerType(), lldb_private::RegisterTypeFlags::GetFields(), lldb_private::RegisterTypeFlags::GetSize(), lldb_private::RegisterType::GetUID(), and m_type_cache.
Referenced by GetRegisterType().
|
static |
Definition at line 29 of file RegisterTypeBuilderClang.cpp.
Referenced by Initialize(), and Terminate().
|
private |
Definition at line 142 of file RegisterTypeBuilderClang.cpp.
References lldb_private::RegisterType::GetUID(), and m_type_cache.
Referenced by BuildEnumType(), and BuildFlagsType().
|
inlinestatic |
Definition at line 28 of file RegisterTypeBuilderClang.h.
Referenced by Initialize().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 27 of file RegisterTypeBuilderClang.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 24 of file RegisterTypeBuilderClang.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Do not cache the returned CompilerType.
A target may replace its scratch type system, so callers must request the type again whenever needed.
Implements lldb_private::RegisterTypeBuilder.
Definition at line 113 of file RegisterTypeBuilderClang.cpp.
References BuildEnumType(), BuildFlagsType(), lldb_private::RegisterInfo::byte_size, lldb_private::RegisterType::eRegisterTypeKindEnum, lldb_private::RegisterType::eRegisterTypeKindFlags, lldb_private::ScratchTypeSystemClang::GetForTarget(), lldb_private::RegisterType::getKind(), m_cached_type_system, m_target, m_type_cache, and lldb_private::RegisterInfo::register_type.
|
static |
Definition at line 19 of file RegisterTypeBuilderClang.cpp.
References CreateInstance(), GetPluginDescriptionStatic(), GetPluginNameStatic(), Initialize(), lldb_private::PluginManager::RegisterPlugin(), and RegisterTypeBuilderClang().
Referenced by Initialize().
|
static |
Definition at line 24 of file RegisterTypeBuilderClang.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
|
private |
Definition at line 58 of file RegisterTypeBuilderClang.h.
Referenced by GetRegisterType().
|
private |
Definition at line 44 of file RegisterTypeBuilderClang.h.
Referenced by GetRegisterType(), and RegisterTypeBuilderClang().
|
private |
Definition at line 57 of file RegisterTypeBuilderClang.h.
Referenced by BuildEnumType(), BuildFlagsType(), GetExistingCompilerType(), and GetRegisterType().