diff options
| author | Utkarsh Saxena <usx@google.com> | 2025-11-06 23:27:33 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-06 23:27:33 -0500 |
| commit | c9b41699978132e83abf2ce4dd63eb21e69f846a (patch) | |
| tree | 0822d0739f52e236113a5e9add625a399a8c7b22 /lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp | |
| parent | 5314d99d30528fde9052a39cfc7948c2919cb6b6 (diff) | |
| download | llvm-c9b41699978132e83abf2ce4dd63eb21e69f846a.zip llvm-c9b41699978132e83abf2ce4dd63eb21e69f846a.tar.gz llvm-c9b41699978132e83abf2ce4dd63eb21e69f846a.tar.bz2 | |
[LifetimeSafety] Optimize fact storage with IDs and vector-based lookup (#165963)
Optimize the FactManager and DataflowAnalysis classes by using vector-based storage with ID-based lookups instead of maps.
- Added a `FactID` type using the `utils::ID` template to uniquely identify facts
- Modified `Fact` class to store and manage IDs
- Changed `FactManager` to use vector-based storage indexed by block ID instead of a map
- Updated `DataflowAnalysis` to use vector-based storage for states instead of maps
- Modified lookups to use ID-based indexing for better performance
Improves compile time hit on long-tail targets like `tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/TargetBuiltins/RISCV.cpp.o` from [21%](http://llvm-compile-time-tracker.com/compare_clang.php?from=6e25a04027ca786b7919657c7df330a33985ceea&to=20b42efa277c8b1915db757863e1fc26531cfd53&stat=instructions%3Au&sortBy=absolute-difference) to [3.2%](http://llvm-compile-time-tracker.com/compare_clang.php?from=6e25a04027ca786b7919657c7df330a33985ceea&to=d2d1cd1109c3a85344457bfff6f092ae7b96b211&stat=instructions%3Au&sortBy=absolute-difference)
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp')
0 files changed, 0 insertions, 0 deletions
