machine learning for code and compiler optimization? I am looking into ML for generating more efficient code (i.e. compile time and run time heuristics). I have a phd (compilers, hpc), but very little ML experience. 

I would appreciate any references to existing work.

More importantly, which Machine Learning techniques should i be exploring ?


each data sample is a code + test run + performance data
large number of data samples, with correct labeling
large number of parameters to modify 
any sample can be rerun with any parameters (and get correct labeling)
large amount of cpu to run and re run samples


And also some of my very suspect assumptions...


much of the code is already locally-optimal (basic compiler optimization)
some of the parameters are "high level concepts" e.g. replace array with linked list. (so a small parameter change will have varied effects)
the desired improvement is bounded (a xK improvement is "good enough", K is well known)
the parameters are sparse i.e. mostly zero (i suspect that most code is basically good, and there are relatively few beneficial changes)


Any pointers to set me on my way would be appreciated
Genetic Programming (GP) has been used to modify source code for performance improvement.

e.g. Evolutionary Improvement of Programs

(This is close to my PhD topic, would be very interested to hear your approach)