llvm-project
bbd60c05 - [LifetimeSafety] Add missing origins stats for lifetime analysis (#166568)

Commit
13 days ago
[LifetimeSafety] Add missing origins stats for lifetime analysis (#166568) This PR adds the implementation for printing missing origin stats for lifetime analysis. **Purpose:** This capability is added to track the expression types with missing origin. While retrieving the origins from origin manager, some expressions show missing origins. Currently these are created on the fly using getOrCreate function. For analysing the coverage of the check, it will be necessary to see what kind of expressions have a missing origin. It prints the counts in this form: `QualType : count` and `StmtClassName : count`. **Approach:** 1. The signature of the runLifetimeAnalysis function is changed to return the LifetimeAnalysis object which will be used to get the origin manager which can be used for finding the count of missing origins. 2. The count of missing origins is kept in origin manager while the CFG is visited as part of the analysis. Example output: For the file llvm-project/llvm/lib/Demangle/Demangle.cpp: ``` *** LifetimeSafety Missing Origin per QualType: (QualType : count) : value_type : 1 char * : 3 *** LifetimeSafety Missing Origin per StmtClassName: (StmtClassName : count) : BinaryOperator : 3 UnaryOperator : 1 Total missing origins: 4 ```
Author
Parents
Loading