Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the call-graph dynamic instead of static. #31

Open
kavon opened this issue Apr 28, 2020 · 0 comments
Open

Make the call-graph dynamic instead of static. #31

kavon opened this issue Apr 28, 2020 · 0 comments
Assignees
Labels
wontfix This will not be worked on

Comments

@kavon
Copy link
Member

kavon commented Apr 28, 2020

The static CallGraph has its own VertexInfo and only knows one name for the function, currently the canonical function. That information is seeded with / derived from the static information in the bitcode.

Dynamically, we might be generating newly-optimized version of existing functions that have different names. In addition, if the optimization generates a new function (via say versioning), then the call-graph will be stale and unaware of how to guide the profiler when it is examining the branch target buffer.

Previously I think we avoided saving the FunctionInfo inside the Vertex because it makes destruction annoying, but if we fix #30 properly, we can make VertexInfo a wrapper around a pointer to FunctionInfo to handle the aliasing problem.

To handle the "new edge" thing for function versioning, we can expose the ability to add new vertices / edges. Then, before sending the code off, we need to analyze the optimized module for fresh call edges.

@kavon kavon added the todo label Apr 28, 2020
@kavon kavon self-assigned this Apr 28, 2020
@kavon kavon removed the todo label May 5, 2020
@kavon kavon modified the milestone: Client Feedback May 5, 2020
@kavon kavon added the wontfix This will not be worked on label Jun 29, 2020
@kavon kavon removed this from the Client Feedback milestone Jun 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant