This pass converts a program into maximal SSA form. In this form, any value referenced within a block is also defined within the block. This is done by adding block arguments to all basic block dominance chains which may lead to an operation that relied on referencing a Value based on basic block dominance.
This pass is useful in dataflow-style programming models since it renders all data flow within the program explicit (through block arguments) instead of implicit (through block dominance).
This pass only works on Standard-level IR, in that it expects all operations (and blocks) within a FuncOp to be within the same region. Furthermore, it is assumed that any value referenced by any operation is eligible to be passed around as a block argument.
nit: You can drop the llvm:: here.