LLVM 20.0.0git
Classes | Public Types | Public Attributes | List of all members
llvm::WholeProgramDevirtResolution Struct Reference

#include "llvm/IR/ModuleSummaryIndex.h"

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.
 

Detailed Description

Definition at line 1234 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 1235 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 1268 of file ModuleSummaryIndex.h.

Referenced by llvm::yaml::MappingTraits< WholeProgramDevirtResolution >::mapping(), parseWholeProgramDevirtResolutionByArg(), 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: