Enzyme main
Loading...
Searching...
No Matches
LoopContext Struct Reference

Container for all loop information to synthesize gradients. More...

#include "CacheUtility.h"

Collaboration diagram for LoopContext:

Public Attributes

llvm::AssertingVH< llvm::PHINode > var
 Canonical induction variable of the loop.
 
llvm::AssertingVH< llvm::Instruction > incvar
 Increment of the induction.
 
llvm::AssertingVH< llvm::AllocaInst > antivaralloc
 Allocation of induction variable of reverse pass.
 
llvm::BasicBlock * header
 Header of this loop.
 
llvm::BasicBlock * preheader
 Preheader of this loop.
 
bool dynamic
 Whether this loop has a statically analyzable number of iterations.
 
AssertingReplacingVH maxLimit
 limit is last value of a canonical induction variable iters is number of times loop is run (thus iters = limit + 1)
 
AssertingReplacingVH trueLimit
 
AssertingReplacingVH offset
 An offset to add to the index when getting the cache pointer.
 
AssertingReplacingVH allocLimit
 An overriding allocation limit size.
 
llvm::SmallPtrSet< llvm::BasicBlock *, 8 > exitBlocks
 All blocks this loop exits too.
 
llvm::Loop * parent
 Parent loop of this loop.
 

Detailed Description

Container for all loop information to synthesize gradients.

Definition at line 63 of file CacheUtility.h.

Member Data Documentation

◆ allocLimit

AssertingReplacingVH LoopContext::allocLimit

An overriding allocation limit size.

Definition at line 92 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits().

◆ antivaralloc

llvm::AssertingVH<llvm::AllocaInst> LoopContext::antivaralloc

Allocation of induction variable of reverse pass.

Definition at line 71 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits().

◆ dynamic

bool LoopContext::dynamic

Whether this loop has a statically analyzable number of iterations.

Definition at line 80 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits().

◆ exitBlocks

llvm::SmallPtrSet<llvm::BasicBlock *, 8> LoopContext::exitBlocks

All blocks this loop exits too.

Definition at line 95 of file CacheUtility.h.

Referenced by AdjointGenerator::createSelectInstAdjoint(), CacheUtility::getSubLimits(), and AdjointGenerator::visitBinaryOperator().

◆ header

llvm::BasicBlock* LoopContext::header

◆ incvar

llvm::AssertingVH<llvm::Instruction> LoopContext::incvar

Increment of the induction.

Definition at line 68 of file CacheUtility.h.

Referenced by AdjointGenerator::createSelectInstAdjoint(), and CacheUtility::getSubLimits().

◆ maxLimit

AssertingReplacingVH LoopContext::maxLimit

limit is last value of a canonical induction variable iters is number of times loop is run (thus iters = limit + 1)

Definition at line 84 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits().

◆ offset

AssertingReplacingVH LoopContext::offset

An offset to add to the index when getting the cache pointer.

Definition at line 89 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits().

◆ parent

llvm::Loop* LoopContext::parent

Parent loop of this loop.

Definition at line 98 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits(), and operator==().

◆ preheader

llvm::BasicBlock* LoopContext::preheader

Preheader of this loop.

Definition at line 77 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits(), and AdjointGenerator::visitBinaryOperator().

◆ trueLimit

AssertingReplacingVH LoopContext::trueLimit

Definition at line 86 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits().

◆ var

llvm::AssertingVH<llvm::PHINode> LoopContext::var

Canonical induction variable of the loop.

Definition at line 65 of file CacheUtility.h.

Referenced by CacheUtility::getSubLimits().


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