Open
Description
Story
PhASAR currently provides three call-graph algorithms: CHA, RTA and OTF, in increasing order of complexity/precision; however, the precision of the OTF CG heavily depends on the precision of the underlying alias information.
We should have a call-graph algorithm that is more precise than RTA and does not depend on alias information.
We add a field-based VTA analysis, which may optionally use alias information.
Prerequisites
- issue x
Out Of Scope
- A isn't part of this
Acceptance Criteria
The following acceptance criteria are defined regarding the result of this story:
Clarify what the final result should be, not how to accomplish it.
- Add VTA analysis that creates a type-assignment-graph (TAG) and propagates known types/fn-pointers through the graph. The TAG creation uses a
Resolver&
as input. - Add VTAResolver that uses the results of the VTA analysis to resolve indirect calls (not just virtual calls)
- Unittests
- Precision should be better than RTA, soundness should be at least on-par.
- Scalability: Should scale to programs with ~1MLOC LLVM IR
Related Stories
- none
Follow-up Stories
- none