LLVM  8.0.1
Classes | Namespaces | Typedefs
IteratedDominanceFrontier.h File Reference

Compute iterated dominance frontiers using a linear time algorithm. More...

#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFGDiff.h"
#include "llvm/IR/Dominators.h"
Include dependency graph for IteratedDominanceFrontier.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::IDFCalculator< NodeTy, IsPostDom >
 Determine the iterated dominance frontier, given a set of defining blocks, and optionally, a set of live-in blocks. More...
 

Namespaces

 llvm
 This class represents lattice values for constants.
 

Typedefs

typedef IDFCalculator< BasicBlock *, falsellvm::ForwardIDFCalculator
 
typedef IDFCalculator< Inverse< BasicBlock * >, truellvm::ReverseIDFCalculator
 

Detailed Description

Compute iterated dominance frontiers using a linear time algorithm.

The algorithm used here is based on:

Sreedhar and Gao. A linear time algorithm for placing phi-nodes. In Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL '95. ACM, New York, NY, 62-73.

It has been modified to not explicitly use the DJ graph data structure and to directly compute pruned SSA using per-variable liveness information.

Definition in file IteratedDominanceFrontier.h.