LLVM 22.0.0git
Public Member Functions | Public Attributes | List of all members
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)

Merge in the no-wrap flags from I.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3987 of file Local.cpp.

References assert(), HasNSW, HasNUW, I, IsDisjoint, and Opcode.

Member Data Documentation

◆ AllKnownNonNegative

bool llvm::OverflowTracking::AllKnownNonNegative = true

◆ 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 580 of file Local.h.

Referenced by mergeFlags().


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