LLVM 20.0.0git
|
#include "llvm/Transforms/IPO/GlobalSplit.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/User.h"
#include "llvm/Support/Casting.h"
#include <cstdint>
#include <vector>
Go to the source code of this file.
Functions | |
static bool | splitGlobal (GlobalVariable &GV) |
static bool | splitGlobals (Module &M) |
|
static |
Definition at line 38 of file GlobalSplit.cpp.
References assert(), llvm::ConstantRange::contains(), DL, llvm::SmallVectorImpl< T >::emplace_back(), llvm::GlobalVariable::eraseFromParent(), GEP, llvm::MDNode::get(), llvm::PoisonValue::get(), llvm::Value::getContext(), llvm::GlobalValue::getDataLayout(), llvm::StructLayout::getElementContainingOffset(), llvm::StructLayout::getElementOffset(), llvm::ConstantExpr::getGetElementPtr(), llvm::GlobalVariable::getInitializer(), llvm::Type::getInt32Ty(), llvm::Type::getInt8Ty(), llvm::ConstantRange::getLower(), llvm::StructLayout::getMemberOffsets(), llvm::GlobalObject::getMetadata(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::StructLayout::getSizeInBytes(), llvm::GlobalValue::getType(), llvm::ConstantRange::getUpper(), llvm::GlobalObject::getVCallVisibility(), llvm::APInt::getZExtValue(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalObject::hasMetadata(), I, Info, InRange(), llvm::GlobalVariable::isConstant(), llvm::Offset, llvm::GlobalValue::PrivateLinkage, llvm::Value::replaceAllUsesWith(), llvm::ArrayRef< T >::size(), llvm::APInt::uge(), llvm::Value::use_empty(), and llvm::Value::users().
Referenced by splitGlobals().
Definition at line 171 of file GlobalSplit.cpp.
References llvm::Intrinsic::getDeclarationIfExists(), llvm::make_early_inc_range(), splitGlobal(), and llvm::Value::use_empty().
Referenced by llvm::GlobalSplitPass::run().