[llvm] [RFC][Uniformity] add proof section uniformity is safe to use across transforms (PR #170628)

Nicolai Hähnle via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 4 10:00:26 PST 2025


================
@@ -713,3 +713,310 @@ relation over dynamic instances and a :ref:`controlled m-converged
 <controlled_m_converged>` property of static instances. The :ref:`uniformity
 analysis <uniformity-analysis>` implemented in LLVM includes this for targets
 that support convergence control tokens.
+
+Preservation of Uniformity at Use
+=================================
+
+Introduction
+------------
+
+In execution of a program, the outputs produced by two converged dynamic
+instances of a static instance are *uniform* if they compare equal; 
+otherwise, *divergent*. In any given program, uniformity is determined 
+through static analysis, which depends on the current state of the program’s 
+control flow. During execution, a transformation may alter the original 
+structure of the program, potentially leading to a change in control flow.
----------------
nhaehnle wrote:

This paragraph uses terms rather strangely to my ears.

"execution" to me means program executing, which happens long after compilation. No transformations run during execution.

Also, the static analysis is a conservative approximation of the actual uniformity at runtime. This is why we sometimes use terms like "dynamically uniform" to clarify.

https://github.com/llvm/llvm-project/pull/170628


More information about the llvm-commits mailing list