LLVM 22.0.0git
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 1230 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 1231 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 1264 of file ModuleSummaryIndex.h.

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

◆ SingleImplName

std::string llvm::WholeProgramDevirtResolution::SingleImplName

◆ TheKind


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