While playing around with optimization sets in LLVM, it occurs to me that the order in which optimizations are run matters greatly since, in general, A(B(src))
is not equal to B(A(src))
where A
and B
are some optimization of type source -> source
and src
is of type source
.
Are there optimizations for which that property holds? Are there projects or research that attempt to formalize or otherwise create these types of optimizations?
diff
"$A \circ B$" "$B \circ A$" returns no differences. $\endgroup$