Utility pass that blocks inlining for functions that may be overridden by a prevailing copy during linking.

Synopsis

Declared in <llvm/Transforms/Instrumentation/PGOCtxProfLowering.h>

class NoinlineNonPrevailing
    : public OptionalPassInfoMixin<NoinlineNonPrevailing>

Description

This avoids confusingly collecting profiles for the same GUID corresponding to different variants of the function. We could do like PGO and identify functions by a (GUID, Hash) tuple, but since the ctxprof "use" waits for thinlto to happen before performing any further optimizations, it's unnecessary to collect profiles for non‐prevailing copies.

Base Classes

Name

Description

OptionalPassInfoMixin<NoinlineNonPrevailing>

A CRTP mix‐in for passes that can be skipped.

Member Functions

Name

Description

NoinlineNonPrevailing [constructor]

Construct a pass that marks non‐prevailing functions as noinline.

run

Mark non‐prevailing functions in M as noinline.

Static Member Functions

Name

Description

isRequired

Return false; optional passes may be skipped.

Created with MrDocs