Milepost GCC - Plugins

5:26 AM Nik 0 Comments

Here are some of the plugins that I have installed and a summary of what they do:
  • save_executed_passes.legacy
    This plugin saves the executed passes per function in external files
  • save_executed_passes_with_time.legacy
    This plugin times the execution of the passes split-compilation.
  • substitute-passes.legacy
    This plugin substitutes original GCC pass order with the one read from either external files "ici_passes_function.txt", 1 global file "ici_passes_all.txt" or environment variable ICI_PASSES_ALL (passes are separated by comma) thus allowing external manipulation with passes (adding, removing or reordering).
  • extract_program_static_features
    This plugin extracts program static features per function as vectors and saves them into "ici_features_function.txt"
The installation of these plugins was not very intuitive but I managed by tweaking the code here and there. The plugins are working fine now with GCC. The only problem I now face with Milepost is how to predict the optimization flags using the static program features which are extracted by the last plugin mentioned above. I believe (I may be wrong here) that we need to access the cDatabase and push our features in there, which then returns a set of optimization flags which can be used to compile with GCC. There are two ways to do this: using Web Services or using the CCC Framework ( I have currently tried both but there are issues.

I cannot find a php script using which I can send a request to the "predict_opt" Web Service. Without this, its not possible to use the Web Service. The script for adding the optimization cases is available though.
With the CCC framework, I am unable to access the Web Service using sockets. This is the part where I am currently working. I have posted a request on the Discussions of the Community for making available the php script. Meanwhile, I'll try to get the CCC framework to work and return the predicted flags.

You Might Also Like


Powered by Blogger.