LLVM 19.0.0git
Public Attributes | List of all members
llvm::IVConditionInfo Struct Reference

Struct to hold information about a partially invariant condition. More...

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

Public Attributes

SmallVector< Instruction * > InstToDuplicate
 Instructions that need to be duplicated and checked for the unswitching condition.
 
ConstantKnownValue = nullptr
 Constant to indicate for which value the condition is invariant.
 
bool PathIsNoop = true
 True if the partially invariant path is no-op (=does not have any side-effects and no loop value is used outside the loop).
 
BasicBlockExitForPath = nullptr
 If the partially invariant path reaches a single exit block, ExitForPath is set to that block.
 

Detailed Description

Struct to hold information about a partially invariant condition.

Definition at line 539 of file LoopUtils.h.

Member Data Documentation

◆ ExitForPath

BasicBlock* llvm::IVConditionInfo::ExitForPath = nullptr

If the partially invariant path reaches a single exit block, ExitForPath is set to that block.

Otherwise it is nullptr.

Definition at line 553 of file LoopUtils.h.

◆ InstToDuplicate

SmallVector<Instruction *> llvm::IVConditionInfo::InstToDuplicate

Instructions that need to be duplicated and checked for the unswitching condition.

Definition at line 542 of file LoopUtils.h.

Referenced by unswitchBestCondition(), and unswitchNontrivialInvariants().

◆ KnownValue

Constant* llvm::IVConditionInfo::KnownValue = nullptr

Constant to indicate for which value the condition is invariant.

Definition at line 545 of file LoopUtils.h.

Referenced by findBestNonTrivialUnswitchCandidate(), and unswitchNontrivialInvariants().

◆ PathIsNoop

bool llvm::IVConditionInfo::PathIsNoop = true

True if the partially invariant path is no-op (=does not have any side-effects and no loop value is used outside the loop).

Definition at line 549 of file LoopUtils.h.


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