class OverflowingBinaryOperator

Declaration

class OverflowingBinaryOperator : public Operator { /* full declaration omitted */ };

Description

Utility class for integer operators which may exhibit overflow - Add, Sub, Mul, and Shl. It does not include SDiv, despite that operator having the potential for overflow.

Declared at: llvm/include/llvm/IR/Operator.h:72

Inherits from: Operator

Member Variables

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasMetadata
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 32
public static MaximumAlignment = 1ULL << MaxAlignmentExponent

Method Overview

Inherited from Operator:

Inherited from User:

Inherited from Value:

Methods

static bool classof(const llvm::Instruction* I)

Declared at: llvm/include/llvm/IR/Operator.h:106

Parameters

const llvm::Instruction* I

static bool classof(const llvm::ConstantExpr* CE)

Declared at: llvm/include/llvm/IR/Operator.h:112

Parameters

const llvm::ConstantExpr* CE

static bool classof(const llvm::Value* V)

Declared at: llvm/include/llvm/IR/Operator.h:118

Parameters

const llvm::Value* V

bool hasNoSignedWrap() const

Description

Test whether this operation is known to never undergo signed overflow, aka the nsw property.

Declared at: llvm/include/llvm/IR/Operator.h:102

bool hasNoUnsignedWrap() const

Description

Test whether this operation is known to never undergo unsigned overflow, aka the nuw property.

Declared at: llvm/include/llvm/IR/Operator.h:96

void setHasNoSignedWrap(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:88

Parameters

bool B

void setHasNoUnsignedWrap(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:84

Parameters

bool B