This document discusses value numbering in GCC. It describes that value numbering assigns unique numbers to expressions that produce the same value. It then summarizes several implementations of value numbering in GCC, including for RTL, GIMPLE SSA, and CSE. It also discusses common subexpression elimination using value numbering and how availability of values is tracked. Finally, it focuses on RPO value numbering, describing how it maps to the control flow graph and can be used efficiently on small regions.