LLVM 22.0.0git
GenericIteratedDominanceFrontier.h File Reference

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

Go to the source code of this file.

Classes

struct  llvm::IDFCalculatorDetail::ChildrenGetterTy< NodeTy, IsPostDom >
 Generic utility class used for getting the children of a basic block. More...
class  llvm::IDFCalculatorBase< NodeTy, IsPostDom >
 Determine the iterated dominance frontier, given a set of defining blocks, and optionally, a set of live-in blocks. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::IDFCalculatorDetail

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 GenericIteratedDominanceFrontier.h.