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

What is the role that LLVMgold plays? #9

Closed
Mambaboy opened this issue Oct 12, 2017 · 1 comment
Closed

What is the role that LLVMgold plays? #9

Mambaboy opened this issue Oct 12, 2017 · 1 comment

Comments

@Mambaboy
Copy link

Hi!
As the instruction says, we should install LLVMgold first before running aflgo.
Why should do this and What is the role LLVMgold plays in this process?
Thank you very much!

@aflgo
Copy link
Owner

aflgo commented Oct 13, 2017

The Gold plugin allows us to specify a parameter such that intermediate *.bc (bitcode) files are produced, as well, during compilation. The bitcode file for the main binary is being used to extract the call graph. The call graph (CG) and the control-flow graphs (CFGs) are then used to compute the distance values for each basic block.

The Gold plugin would not be necessary if we integrated everything into a single LLVM pass and computed the distance values on the internal representation of CG and CFGs inside the LLVM pass. For us, there was just not enough time to do that.

However, if there is a pull request, where everything is integrated into a single pass, then we would definitely be happy to review and integrate!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants