class PredIteratorCache

Declaration

class PredIteratorCache { /* full declaration omitted */ };

Description

PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries. This is useful for code that repeatedly wants the predecessor list for the same blocks.

Declared at: llvm/include/llvm/IR/PredIteratorCache.h:27

Member Variables

private DenseMap<llvm::BasicBlock*, llvm::BasicBlock**> BlockToPredsMap
BlockToPredsMap - Pointer to null-terminated list.
private DenseMap<llvm::BasicBlock*, unsigned int> BlockToPredCountMap
private llvm::BumpPtrAllocator Memory
Memory - This is the space that holds cached preds.

Method Overview

  • private unsigned int GetNumPreds(llvm::BasicBlock * BB) const
  • private llvm::BasicBlock ** GetPreds(llvm::BasicBlock * BB)
  • public void clear()
  • public ArrayRef<llvm::BasicBlock *> get(llvm::BasicBlock * BB)
  • public size_t size(llvm::BasicBlock * BB) const

Methods

unsigned int GetNumPreds(
    llvm::BasicBlock* BB) const

Declared at: llvm/include/llvm/IR/PredIteratorCache.h:57

Parameters

llvm::BasicBlock* BB

llvm::BasicBlock** GetPreds(llvm::BasicBlock* BB)

Description

GetPreds - Get a cached list for the null-terminated predecessor list of the specified block. This can be used in a loop like this: for (BasicBlock **PI = PredCache->GetPreds(BB); *PI; ++PI) use(*PI); instead of: for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI)

Declared at: llvm/include/llvm/IR/PredIteratorCache.h:42

Parameters

llvm::BasicBlock* BB

void clear()

Description

clear - Remove all information.

Declared at: llvm/include/llvm/IR/PredIteratorCache.h:71

ArrayRef<llvm::BasicBlock*> get(
    llvm::BasicBlock* BB)

Declared at: llvm/include/llvm/IR/PredIteratorCache.h:66

Parameters

llvm::BasicBlock* BB

size_t size(llvm::BasicBlock* BB) const

Declared at: llvm/include/llvm/IR/PredIteratorCache.h:65

Parameters

llvm::BasicBlock* BB