LLDB mainline
IRForTarget.cpp File Reference
#include "IRForTarget.h"
#include "ClangExpressionDeclMap.h"
#include "ClangUtil.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ValueSymbolTable.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/IPO.h"
#include "clang/AST/ASTContext.h"
#include "lldb/Core/dwarf.h"
#include "lldb/Expression/IRExecutionUnit.h"
#include "lldb/Expression/IRInterpreter.h"
#include "lldb/Symbol/CompilerType.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/DataBufferHeap.h"
#include "lldb/Utility/Endian.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/Scalar.h"
#include "lldb/Utility/StreamString.h"
#include <map>
#include <optional>

Go to the source code of this file.

Typedefs

typedef SmallVector< Instruction *, 2 > InstrList

Enumerations

enum class  LLDBLog

Functions

static llvm::Value * FindEntryInstruction (llvm::Function *function)
static std::string PrintValue (const Value *value, bool truncate=false)
static std::string PrintType (const llvm::Type *type, bool truncate=false)
static bool isGuardVariableSymbol (llvm::StringRef mangled_symbol, bool check_ms_abi=true)
 Returns true iff the mangled symbol is for a static guard variable.
static bool IsObjCSelectorRef (Value *value)
static bool isGuardVariableRef (Value *V)
static void ExciseGuardStore (Instruction *guard_store)

Typedef Documentation

◆ InstrList

typedef SmallVector<Instruction *, 2> InstrList

Definition at line 48 of file IRForTarget.cpp.

Enumeration Type Documentation

◆ LLDBLog

enum class lldb_private::LLDBLog : Log::MaskType
strong

Definition at line 18 of file LLDBLog.h.

Function Documentation

◆ ExciseGuardStore()

void ExciseGuardStore ( Instruction * guard_store)
static

Definition at line 1280 of file IRForTarget.cpp.

Referenced by IRForTarget::RemoveGuards().

◆ FindEntryInstruction()

llvm::Value * FindEntryInstruction ( llvm::Function * function)
static

Definition at line 65 of file IRForTarget.cpp.

Referenced by IRForTarget::IRForTarget().

◆ isGuardVariableRef()

bool isGuardVariableRef ( Value * V)
static

Definition at line 1265 of file IRForTarget.cpp.

References isGuardVariableSymbol().

Referenced by IRForTarget::RemoveGuards().

◆ isGuardVariableSymbol()

bool isGuardVariableSymbol ( llvm::StringRef mangled_symbol,
bool check_ms_abi = true )
static

Returns true iff the mangled symbol is for a static guard variable.

Definition at line 153 of file IRForTarget.cpp.

Referenced by IRForTarget::CreateResultVariable(), and isGuardVariableRef().

◆ IsObjCSelectorRef()

bool IsObjCSelectorRef ( Value * value)
static

◆ PrintType()

std::string PrintType ( const llvm::Type * type,
bool truncate = false )
static

Definition at line 95 of file IRForTarget.cpp.

◆ PrintValue()

std::string PrintValue ( const Value * value,
bool truncate = false )
static

Definition at line 84 of file IRForTarget.cpp.