struct DivRemPairWorklistEntry

Declaration

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

Description

A thin wrapper to store two values that we matched as div-rem pair. We want this extra indirection to avoid dealing with RAUW'ing the map keys.

Declared at: llvm/lib/Transforms/Scalar/DivRemPairs.cpp:76

Member Variables

public AssertingVH<llvm::Instruction> DivInst
The actual udiv/sdiv instruction. Source of truth.
public AssertingVH<llvm::Instruction> RemInst
The instruction that we have matched as a remainder instruction. Should only be used as Value, don't introspect it.

Method Overview

Methods

DivRemPairWorklistEntry(
    llvm::Instruction* DivInst_,
    llvm::Instruction* RemInst_)

Declared at: llvm/lib/Transforms/Scalar/DivRemPairs.cpp:84

Parameters

llvm::Instruction* DivInst_
llvm::Instruction* RemInst_

llvm::Value* getDividend() const

Description

In this pair, what are the divident and divisor?

Declared at: llvm/lib/Transforms/Scalar/DivRemPairs.cpp:101

llvm::Value* getDivisor() const

Declared at: llvm/lib/Transforms/Scalar/DivRemPairs.cpp:102

llvm::Type* getType() const

Description

The type for this pair, identical for both the div and rem.

Declared at: llvm/lib/Transforms/Scalar/DivRemPairs.cpp:95

bool isRemExpanded() const

Declared at: llvm/lib/Transforms/Scalar/DivRemPairs.cpp:104

bool isSigned() const

Description

Is this pair signed or unsigned?

Declared at: llvm/lib/Transforms/Scalar/DivRemPairs.cpp:98