LLVM
8.0.1
|
#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/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Transforms/IPO.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 41 of file GlobalSplit.cpp.
References llvm::dyn_cast(), llvm::GlobalVariable::eraseFromParent(), GEP, llvm::ConstantInt::get(), llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::UndefValue::get(), llvm::Value::getContext(), llvm::Module::getDataLayout(), llvm::StructLayout::getElementOffset(), llvm::ConstantExpr::getGetElementPtr(), llvm::GlobalVariable::getInitializer(), getInitializer(), llvm::Type::getInt32Ty(), llvm::GlobalObject::getMetadata(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::StructLayout::getSizeInBytes(), llvm::DataLayout::getStructLayout(), getType(), llvm::GlobalValue::getType(), llvm::GlobalValue::hasLocalLinkage(), I, Int32Ty, llvm::GlobalVariable::isConstant(), isZero(), llvm::LLVMContext::MD_type, llvm::GlobalValue::PrivateLinkage, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::Value::use_empty(), llvm::Value::users(), and llvm::utostr().
Referenced by splitGlobals().
Definition at line 141 of file GlobalSplit.cpp.
References llvm::Module::getFunction(), llvm::Intrinsic::getName(), llvm::PassRegistry::getPassRegistry(), llvm::Module::global_begin(), llvm::Module::global_end(), I, INITIALIZE_PASS, llvm::initializeGlobalSplitPass(), splitGlobal(), llvm::Intrinsic::type_checked_load, llvm::Intrinsic::type_test, and llvm::Value::use_empty().
Referenced by llvm::GlobalSplitPass::run().