LLVM 17.0.0git
Namespaces | Macros | Functions
BPFAbstractMemberAccess.cpp File Reference
#include "BPF.h"
#include "BPFCORE.h"
#include "BPFTargetMachine.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicsBPF.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include <stack>

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Macros

#define DEBUG_TYPE   "bpf-abstract-member-access"
 

Functions

 INITIALIZE_PASS (BPFAbstractMemberAccessLegacyPass, DEBUG_TYPE, "BPF Abstract Member Access", false, false) FunctionPass *llvm
 
static bool SkipDIDerivedTag (unsigned Tag, bool skipTypedef)
 
static DITypestripQualifiers (DIType *Ty, bool skipTypedef=true)
 
static const DITypestripQualifiers (const DIType *Ty)
 
static uint32_t calcArraySize (const DICompositeType *CTy, uint32_t StartDim)
 
static TypegetBaseElementType (const CallInst *Call)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "bpf-abstract-member-access"

Definition at line 95 of file BPFAbstractMemberAccess.cpp.

Function Documentation

◆ calcArraySize()

static uint32_t calcArraySize ( const DICompositeType CTy,
uint32_t  StartDim 
)
static

◆ getBaseElementType()

static Type * getBaseElementType ( const CallInst Call)
static

Definition at line 349 of file BPFAbstractMemberAccess.cpp.

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( BPFAbstractMemberAccessLegacyPass  ,
DEBUG_TYPE  ,
"BPF Abstract Member Access"  ,
false  ,
false   
)

Definition at line 213 of file BPFAbstractMemberAccess.cpp.

References TM.

◆ SkipDIDerivedTag()

static bool SkipDIDerivedTag ( unsigned  Tag,
bool  skipTypedef 
)
static

Definition at line 305 of file BPFAbstractMemberAccess.cpp.

Referenced by stripQualifiers().

◆ stripQualifiers() [1/2]

static const DIType * stripQualifiers ( const DIType Ty)
static

Definition at line 325 of file BPFAbstractMemberAccess.cpp.

References llvm::DINode::getTag(), and SkipDIDerivedTag().

◆ stripQualifiers() [2/2]

static DIType * stripQualifiers ( DIType Ty,
bool  skipTypedef = true 
)
static

Definition at line 316 of file BPFAbstractMemberAccess.cpp.

References llvm::DINode::getTag(), and SkipDIDerivedTag().