[PassManager] Store analysis results in contiguous storage (#222003)

Store per-IR analysis results in a `SmallVector` instead of `std::list`
to avoid a heap allocation per cached analysis. The lookup map stores
the raw result pointer, which stays stable behind the unique_ptr.

geomean -0.12% for optimizing builds, clang build -0.34%

https://llvm-compile-time-tracker.com/compare.php?from=e6734a41bb41d91cb880fe7abce46d8146182518&to=4fc43802817cf8daddbebadb0b7fbfaa6286e7fe&stat=instructions:u

GitOrigin-RevId: 64b7dfef40e59b8596a272a431aa3a4abcef33c1
1 file changed