Skip to content

Better CallGraph #779

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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