LLVM 22.0.0git
llvm::OverflowTracking Struct Reference

#include "llvm/Transforms/Utils/Local.h"

Public Member Functions

 OverflowTracking ()=default
LLVM_ABI void mergeFlags (Instruction &I)
 Merge in the no-wrap flags from I.
LLVM_ABI void applyFlags (Instruction &I)
 Apply the no-wrap flags to I if applicable.

Public Attributes

bool HasNUW = true
bool HasNSW = true
bool IsDisjoint = true
std::optional< unsignedOpcode
 Opcode of merged instructions.
bool AllKnownNonNegative = true
bool AllKnownNonZero = true

Detailed Description

Definition at line 572 of file Local.h.

Constructor & Destructor Documentation

◆ OverflowTracking()

llvm::OverflowTracking::OverflowTracking ( )
default

Member Function Documentation

◆ applyFlags()

void OverflowTracking::applyFlags ( Instruction & I)

◆ mergeFlags()

void OverflowTracking::mergeFlags ( Instruction & I)

Member Data Documentation

◆ AllKnownNonNegative

◆ AllKnownNonZero

bool llvm::OverflowTracking::AllKnownNonZero = true

◆ HasNSW

bool llvm::OverflowTracking::HasNSW = true

◆ HasNUW

bool llvm::OverflowTracking::HasNUW = true

◆ IsDisjoint

bool llvm::OverflowTracking::IsDisjoint = true

◆ Opcode

std::optional<unsigned> llvm::OverflowTracking::Opcode

Opcode of merged instructions.

All instructions passed to mergeFlags must have the same opcode.

Definition at line 580 of file Local.h.

Referenced by mergeFlags().


The documentation for this struct was generated from the following files: