LLVM  8.0.1
Public Member Functions | Public Attributes | List of all members
llvm::WholeProgramDevirtPass Struct Reference

#include "llvm/Transforms/IPO/WholeProgramDevirt.h"

Inheritance diagram for llvm::WholeProgramDevirtPass:
Inheritance graph
[legend]
Collaboration diagram for llvm::WholeProgramDevirtPass:
Collaboration graph
[legend]

Public Member Functions

 WholeProgramDevirtPass (ModuleSummaryIndex *ExportSummary, const ModuleSummaryIndex *ImportSummary)
 
PreservedAnalyses run (Module &M, ModuleAnalysisManager &)
 

Public Attributes

ModuleSummaryIndexExportSummary
 
const ModuleSummaryIndexImportSummary
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::PassInfoMixin< WholeProgramDevirtPass >
static StringRef name ()
 Gets the name of the pass we are mixed into. More...
 

Detailed Description

Definition at line 221 of file WholeProgramDevirt.h.

Constructor & Destructor Documentation

◆ WholeProgramDevirtPass()

llvm::WholeProgramDevirtPass::WholeProgramDevirtPass ( ModuleSummaryIndex ExportSummary,
const ModuleSummaryIndex ImportSummary 
)
inline

Definition at line 224 of file WholeProgramDevirt.h.

References assert().

Member Function Documentation

◆ run()

PreservedAnalyses WholeProgramDevirtPass::run ( Module M,
ModuleAnalysisManager AM 
)

Definition at line 617 of file WholeProgramDevirt.cpp.

References llvm::Function::addAttribute(), llvm::wholeprogramdevirt::VTableBits::After, llvm::alignTo(), llvm::PreservedAnalyses::all(), Arg, llvm::AMDGPU::HSAMD::Kernel::Key::Args, assert(), llvm::Intrinsic::assume, llvm::AMDGPU::HSAMD::Kernel::Key::Attrs, B, llvm::wholeprogramdevirt::VTableBits::Before, llvm::tgtok::Bit, llvm::WholeProgramDevirtResolution::ByArg::Bit, llvm::tgtok::Bits, llvm::wholeprogramdevirt::TypeMemberInfo::Bits, llvm::WholeProgramDevirtResolution::BranchFunnel, llvm::WholeProgramDevirtResolution::ByArg::Byte, llvm::wholeprogramdevirt::AccumBitVector::Bytes, C, llvm::SmallVectorImpl< T >::clear(), ClReadSummary, ClSummaryAction, ClThreshold, ClWriteSummary, llvm::computeFunctionBodyMemoryAccess(), llvm::StringRef::contains(), llvm::GlobalAlias::create(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::CallInst::Create(), llvm::ReturnInst::Create(), llvm::IRBuilder< T, Inserter >::CreateBitCast(), llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::IRBuilder< T, Inserter >::CreateGEP(), llvm::IRBuilder< T, Inserter >::CreateLoad(), DEBUG_TYPE, llvm::dyn_cast(), E, llvm::Triple::ELF, llvm::SmallVectorBase::empty(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::Function::empty(), llvm::GlobalVariable::eraseFromParent(), llvm::errorCodeToError(), llvm::errorOrToExpected(), llvm::Export, llvm::GlobalValue::ExternalLinkage, F(), llvm::sys::fs::F_Text, llvm::findDevirtualizableCallsForTypeCheckedLoad(), llvm::findDevirtualizableCallsForTypeTest(), llvm::wholeprogramdevirt::findLowestOffset(), llvm::wholeprogramdevirt::VirtualCallTarget::Fn, GEP, llvm::Attribute::get(), llvm::ConstantInt::get(), llvm::FunctionType::get(), llvm::AttributeSet::get(), llvm::AttributeList::get(), llvm::ConstantAsMetadata::get(), llvm::ConstantDataArray::get(), llvm::MDNode::get(), llvm::UndefValue::get(), llvm::ConstantStruct::getAnon(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getArgOperand(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getAttributes(), llvm::Function::getBasicBlockList(), llvm::ConstantExpr::getBitCast(), llvm::IntegerType::getBitWidth(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCaller(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getCallingConv(), llvm::GlobalObject::getComdat(), llvm::Module::getContext(), llvm::Module::getDataLayout(), llvm::Intrinsic::getDeclaration(), llvm::StructLayout::getElementContainingOffset(), llvm::StructLayout::getElementOffset(), llvm::SequentialType::getElementType(), llvm::MemoryBuffer::getFile(), llvm::Function::getFnAttribute(), llvm::AttributeList::getFnAttributes(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getFunctionType(), llvm::ConstantExpr::getGetElementPtr(), llvm::Module::getGlobalList(), llvm::GlobalValue::getGUID(), llvm::GlobalVariable::getInitializer(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction(), llvm::ConstantExpr::getIntToPtr(), llvm::GlobalValue::getLinkage(), llvm::Intrinsic::getName(), llvm::Value::getName(), llvm::Target::getName(), llvm::Constant::getNullValue(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getNumArgOperands(), llvm::AttributeList::getNumAttrSets(), llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::Module::getOrInsertComdat(), llvm::Module::getOrInsertGlobal(), llvm::AttributeList::getParamAttributes(), llvm::DataLayout::getProgramAddressSpace(), llvm::ConstantExpr::getPtrToInt(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::AttributeList::getRetAttributes(), llvm::FunctionType::getReturnType(), llvm::GlobalObject::getSection(), llvm::StructLayout::getSizeInBytes(), llvm::DataLayout::getStructLayout(), llvm::Module::getTargetTriple(), llvm::ConstantInt::getTrue(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::PointerType::getUnqual(), llvm::Attribute::getValueAsString(), llvm::GlobalValue::getVisibility(), llvm::Type::getVoidTy(), llvm::Module::global_objects(), llvm::Module::globals(), llvm::wholeprogramdevirt::VTableBits::GV, llvm::Attribute::hasAttribute(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::HiddenVisibility, I, llvm::Intrinsic::icall_branch_funnel, llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, if(), llvm::Import, llvm::tgtok::In, llvm::WholeProgramDevirtResolution::ByArg::Info, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert(), Int32Ty, llvm::GlobalValue::InternalLinkage, Intr, llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::isCall(), llvm::GlobalVariable::isConstant(), llvm::OptimizationRemark::isEnabled(), llvm::Type::isPointerTy(), llvm::FunctionType::isVarArg(), llvm::HexagonISD::JT, llvm::MAK_ReadNone, llvm::LLVMContext::MD_absolute_symbol, llvm::LLVMContext::MD_type, Name, llvm::Attribute::Nest, llvm::Attribute::None, llvm::PreservedAnalyses::none(), llvm::wholeprogramdevirt::TypeMemberInfo::Offset, P, llvm::FunctionType::params(), llvm::GlobalValue::PrivateLinkage, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), llvm::report_fatal_error(), llvm::WholeProgramDevirtResolution::ResByArg, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::reserve(), llvm::wholeprogramdevirt::VirtualCallTarget::RetVal, llvm::wholeprogramdevirt::setAfterReturnValues(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::setAttributes(), llvm::wholeprogramdevirt::setBeforeReturnValues(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::setCallingConv(), llvm::GlobalValue::setLinkage(), llvm::Value::setName(), llvm::GlobalObject::setSection(), llvm::Comdat::setSelectionKind(), llvm::GlobalValue::setVisibility(), llvm::WholeProgramDevirtResolution::SingleImpl, llvm::WholeProgramDevirtResolution::SingleImplName, Size, llvm::SmallVectorBase::size(), llvm::ArrayRef< T >::size(), llvm::raw_string_ostream::str(), llvm::Constant::stripPointerCasts(), llvm::Value::stripPointerCasts(), std::swap(), T, llvm::CallInst::TCK_MustTail, llvm::WholeProgramDevirtResolution::TheKind, llvm::WholeProgramDevirtResolution::ByArg::TheKind, llvm::wholeprogramdevirt::VirtualCallTarget::TM, llvm::Intrinsic::type_checked_load, llvm::Intrinsic::type_test, llvm::WholeProgramDevirtResolution::ByArg::UniformRetVal, llvm::WholeProgramDevirtResolution::ByArg::UniqueRetVal, llvm::Value::use_begin(), llvm::Value::use_empty(), llvm::Value::use_end(), llvm::AArch64CC::VC, llvm::WholeProgramDevirtResolution::ByArg::VirtualConstProp, llvm::TypeIdSummary::WPDRes, llvm::Triple::x86, and llvm::Triple::x86_64.

Member Data Documentation

◆ ExportSummary

ModuleSummaryIndex* llvm::WholeProgramDevirtPass::ExportSummary

Definition at line 222 of file WholeProgramDevirt.h.

◆ ImportSummary

const ModuleSummaryIndex* llvm::WholeProgramDevirtPass::ImportSummary

Definition at line 223 of file WholeProgramDevirt.h.


The documentation for this struct was generated from the following files: