Skip to content

Better CallGraph #779

Open
Open
@fabianbs96

Description

@fabianbs96

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions