struct AttributorConfig

Declaration

struct AttributorConfig { /* full declaration omitted */ };

Description

Configuration for the Attributor.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:1242

Member Variables

public bool IsModulePass = true
Is the user of the Attributor a module pass or not. This determines what IR we can look at and modify. If it is a module pass we might deduce facts outside the initial function set and modify functions outside that set, but only as part of the optimization of the functions in the initial function set. For CGSCC passes we can look at the IR of the module slice but never run any deduction, or perform any modification, outside the initial function set (which we assume is the SCC).
public bool DeleteFns = true
Flag to determine if we can delete functions or keep dead ones around.
public bool RewriteSignatures = true
Flag to determine if we rewrite function signatures.
public bool DefaultInitializeLiveInternals = true
Flag to determine if we want to initialize all default AAs for an internal function marked live. TODO: This should probably be a callback, or maybe identifyDefaultAbstractAttributes should be virtual, something to allow customizable lazy initialization for internal functions.
public llvm::CallGraphUpdater& CGUpdater
Helper to update an underlying call graph and to delete functions.
public DenseSet<const char*>* Allowed = nullptr
If not null, a set limiting the attribute opportunities.
public Optional<unsigned int> MaxFixpointIterations = None
Maximum number of iterations to run until fixpoint.
public llvm::AttributorConfig::OptimizationRemarkGetter OREGetter = nullptr
public const char* PassName = nullptr
The name of the pass running the attributor, used to emit remarks.

Method Overview

Methods

ΒΆAttributorConfig(
    llvm::CallGraphUpdater& CGUpdater)

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:1244

Parameters

llvm::CallGraphUpdater& CGUpdater