LLVM: include/llvm/ADT/GenericUniformityImpl.h File Reference (original) (raw)

Implementation of uniformity analysis.

The algorithm is a fixed point iteration that starts with the assumption that all control flow and all values are uniform. Starting from sources of divergence (whose discovery must be implemented by a CFG- or even target-specific derived class), divergence of values is propagated from definition to uses in a straight-forward way. The main complexity lies in the propagation of the impact of divergent control flow on the divergence of values (sync dependencies).

NOTE: In general, no interface exists for a transform to update (Machine)UniformityInfo. Additionally, (Machine)CycleAnalysis is a transitive dependence, but it also does not provide an interface for updating itself. Given that, transforms should not preserve uniformity in their getAnalysisUsage() callback.

Definition in file GenericUniformityImpl.h.