Call graph construction and analysis.
Builds caller and callee relationships from semantic analysis results. Implements type-aware function matching to disambiguate overloads and name collisions.