LLVM 19.0.0git
Macros | Functions
CtorUtils.cpp File Reference
#include "llvm/Transforms/Utils/CtorUtils.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <numeric>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "ctor_utils"
 

Functions

static void removeGlobalCtors (GlobalVariable *GCL, const BitVector &CtorsToRemove)
 Given a specified llvm.global_ctors list, remove the listed elements.
 
static std::vector< std::pair< uint32_t, Function * > > parseGlobalCtors (GlobalVariable *GV)
 Given a llvm.global_ctors list that we can understand, return a list of the functions and null terminator as a vector.
 
static GlobalVariablefindGlobalCtors (Module &M)
 Find the llvm.global_ctors list.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "ctor_utils"

Definition at line 23 of file CtorUtils.cpp.

Function Documentation

◆ findGlobalCtors()

static GlobalVariable * findGlobalCtors ( Module M)
static

◆ parseGlobalCtors()

static std::vector< std::pair< uint32_t, Function * > > parseGlobalCtors ( GlobalVariable GV)
static

Given a llvm.global_ctors list that we can understand, return a list of the functions and null terminator as a vector.

Definition at line 64 of file CtorUtils.cpp.

References llvm::GlobalVariable::getInitializer(), llvm::User::getNumOperands(), llvm::User::getOperand(), and llvm::User::operands().

Referenced by llvm::optimizeGlobalCtorsList().

◆ removeGlobalCtors()

static void removeGlobalCtors ( GlobalVariable GCL,
const BitVector CtorsToRemove 
)
static