class Float2IntPass

Declaration

class Float2IntPass : 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/Float2Int.h:32

Inherits from: PassInfoMixin

Member Variables

private MapVector<llvm::Instruction*, llvm::ConstantRange> SeenInsts
private SmallSetVector<llvm::Instruction*, 8> Roots
private EquivalenceClasses<llvm::Instruction*> ECs
private MapVector<llvm::Instruction*, llvm::Value*> ConvertedInsts
private llvm::LLVMContext* Ctx

Method Overview

  • private llvm::ConstantRange badRange()
  • private Optional<llvm::ConstantRange> calcRange(llvm::Instruction * I)
  • private void cleanup()
  • private llvm::Value * convert(llvm::Instruction * I, llvm::Type * ToTy)
  • private void findRoots(llvm::Function & F, const llvm::DominatorTree & DT)
  • public llvm::PreservedAnalyses run(llvm::Function & F, llvm::FunctionAnalysisManager & AM)
  • public bool runImpl(llvm::Function & F, const llvm::DominatorTree & DT)
  • private void seen(llvm::Instruction * I, llvm::ConstantRange R)
  • private llvm::ConstantRange unknownRange()
  • private bool validateAndTransform()
  • private llvm::ConstantRange validateRange(llvm::ConstantRange R)
  • private void walkBackwards()
  • private void walkForwards()

Methods

llvm::ConstantRange badRange()

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:42

Optional<llvm::ConstantRange> calcRange(
    llvm::Instruction* I)

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:45

Parameters

llvm::Instruction* I

void cleanup()

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:50

llvm::Value* convert(llvm::Instruction* I,
                     llvm::Type* ToTy)

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:49

Parameters

llvm::Instruction* I
llvm::Type* ToTy

void findRoots(llvm::Function& F,
               const llvm::DominatorTree& DT)

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:40

Parameters

llvm::Function& F
const llvm::DominatorTree& DT

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

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:34

Parameters

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

bool runImpl(llvm::Function& F,
             const llvm::DominatorTree& DT)

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:37

Parameters

llvm::Function& F
const llvm::DominatorTree& DT

void seen(llvm::Instruction* I,
          llvm::ConstantRange R)

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:41

Parameters

llvm::Instruction* I
llvm::ConstantRange R

llvm::ConstantRange unknownRange()

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:43

bool validateAndTransform()

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:48

llvm::ConstantRange validateRange(
    llvm::ConstantRange R)

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:44

Parameters

llvm::ConstantRange R

void walkBackwards()

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:46

void walkForwards()

Declared at: llvm/include/llvm/Transforms/Scalar/Float2Int.h:47