LLVM  8.0.0svn
Classes | Public Types | Public Attributes | List of all members
llvm::WholeProgramDevirtResolution Struct Reference

#include "llvm/IR/ModuleSummaryIndex.h"

Collaboration diagram for llvm::WholeProgramDevirtResolution:
Collaboration graph
[legend]

Classes

struct  ByArg
 

Public Types

enum  Kind { Indir, SingleImpl, BranchFunnel }
 

Public Attributes

enum llvm::WholeProgramDevirtResolution::Kind TheKind = Indir
 
std::string SingleImplName
 
std::map< std::vector< uint64_t >, ByArgResByArg
 Resolutions for calls with all constant integer arguments (excluding the first argument, "this"), where the key is the argument vector. More...
 

Detailed Description

Definition at line 696 of file ModuleSummaryIndex.h.

Member Enumeration Documentation

◆ Kind

Enumerator
Indir 

Just do a regular virtual call.

SingleImpl 

Single implementation devirtualization.

BranchFunnel 

When retpoline mitigation is enabled, use a branch funnel that is defined in the merged module.

Otherwise same as Indir.

Definition at line 697 of file ModuleSummaryIndex.h.

Member Data Documentation

◆ ResByArg

std::map<std::vector<uint64_t>, ByArg> llvm::WholeProgramDevirtResolution::ResByArg

Resolutions for calls with all constant integer arguments (excluding the first argument, "this"), where the key is the argument vector.

Definition at line 730 of file ModuleSummaryIndex.h.

Referenced by FunctionNumber(), getTTResKindName(), llvm::yaml::MappingTraits< WholeProgramDevirtResolution >::mapping(), parseWholeProgramDevirtResolutionByArg(), llvm::WholeProgramDevirtPass::run(), and writeWholeProgramDevirtResolution().

◆ SingleImplName

std::string llvm::WholeProgramDevirtResolution::SingleImplName

◆ TheKind

enum llvm::WholeProgramDevirtResolution::Kind llvm::WholeProgramDevirtResolution::TheKind = Indir

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