LLVM 22.0.0git
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()

◆ getBaseElementType()

Type * getBaseElementType ( const CallInst * Call)
static

Definition at line 314 of file BPFAbstractMemberAccess.cpp.

References Call.

Referenced by replaceWithGEP().

◆ getConstant()

uint64_t getConstant ( const Value * IndexValue)
static

◆ replaceWithGEP()

◆ SkipDIDerivedTag()

bool SkipDIDerivedTag ( unsigned Tag,
bool skipTypedef )
static

Definition at line 270 of file BPFAbstractMemberAccess.cpp.

Referenced by stripQualifiers(), and stripQualifiers().

◆ stripQualifiers() [1/2]

const DIType * stripQualifiers ( const DIType * Ty)
static

◆ stripQualifiers() [2/2]

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