LLVM 20.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/DebugInfo/BTF/BTF.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/IR/ValueHandle.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

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)
 
static uint64_t getConstant (const Value *IndexValue)
 
static void replaceWithGEP (CallInst *Call, uint32_t DimensionIndex, uint32_t GEPIndex)
 

Macro Definition Documentation

◆ DEBUG_TYPE

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

Definition at line 97 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 314 of file BPFAbstractMemberAccess.cpp.

Referenced by replaceWithGEP().

◆ getConstant()

static uint64_t getConstant ( const Value IndexValue)
static

◆ replaceWithGEP()

static void replaceWithGEP ( CallInst Call,
uint32_t  DimensionIndex,
uint32_t  GEPIndex 
)
static

◆ SkipDIDerivedTag()

static bool SkipDIDerivedTag ( unsigned  Tag,
bool  skipTypedef 
)
static

Definition at line 270 of file BPFAbstractMemberAccess.cpp.

Referenced by stripQualifiers().

◆ stripQualifiers() [1/2]

static const DIType * stripQualifiers ( const DIType Ty)
static

Definition at line 290 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 281 of file BPFAbstractMemberAccess.cpp.

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