class SpeculativeExecutionPass

Declaration

class SpeculativeExecutionPass : public PassInfoMixin { /* full declaration omitted */ };

Description

A CRTP mix-in to automatically provide informational APIs needed for passes. This provides some boilerplate for types that are passes.

Declared at: llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h:69

Inherits from: PassInfoMixin

Member Variables

private const bool OnlyIfDivergentTarget = false
private llvm::TargetTransformInfo* TTI = nullptr

Method Overview

  • public SpeculativeExecutionPass(bool OnlyIfDivergentTarget = false)
  • private bool considerHoistingFromTo(llvm::BasicBlock & FromBlock, llvm::BasicBlock & ToBlock)
  • public llvm::PreservedAnalyses run(llvm::Function & F, llvm::FunctionAnalysisManager & AM)
  • public bool runImpl(llvm::Function & F, llvm::TargetTransformInfo * TTI)
  • private bool runOnBasicBlock(llvm::BasicBlock & B)

Methods

SpeculativeExecutionPass(
    bool OnlyIfDivergentTarget = false)

Declared at: llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h:72

Parameters

bool OnlyIfDivergentTarget = false

bool considerHoistingFromTo(
    llvm::BasicBlock& FromBlock,
    llvm::BasicBlock& ToBlock)

Declared at: llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h:81

Parameters

llvm::BasicBlock& FromBlock
llvm::BasicBlock& ToBlock

llvm::PreservedAnalyses run(
    llvm::Function& F,
    llvm::FunctionAnalysisManager& AM)

Declared at: llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h:74

Parameters

llvm::Function& F
llvm::FunctionAnalysisManager& AM

bool runImpl(llvm::Function& F,
             llvm::TargetTransformInfo* TTI)

Declared at: llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h:77

Parameters

llvm::Function& F
llvm::TargetTransformInfo* TTI

bool runOnBasicBlock(llvm::BasicBlock& B)

Declared at: llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h:80

Parameters

llvm::BasicBlock& B