LLVM 17.0.0git
llvm::IVConditionInfo Struct Reference

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

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

Collaboration diagram for llvm::IVConditionInfo:
[legend]

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 520 of file LoopUtils.h.

◆ 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 534 of file LoopUtils.h.

◆ InstToDuplicate

 SmallVector llvm::IVConditionInfo::InstToDuplicate

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

Definition at line 523 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 526 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 530 of file LoopUtils.h.

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