Font Size: a A A

Research On Compiler Adaption With Machine Learning

Posted on:2007-09-18Degree:DoctorType:Dissertation
Country:ChinaCandidate:Z L LiuFull Text:PDF
GTID:1118360185954175Subject:Computer system architecture
Abstract/Summary:PDF Full Text Request
Compiler writers always face the challenge of NP-hard problem such as register allocation and instruction scheduling. To find an effective and inexpensive solution is a difficult work. While solutions are expected to interact with other optimizations well, and getting all of them concerted is a daunting work. On the other hand, the complicated computer architecture and various applications make compiler writers' work harder. Since it is impossible to find a best model considering all factors, compiler writers have to extract some abstraction and create heuristic model based on assumptions, which perhaps do not reflect the real situations. The work described in this thesis has following contributions:Proposed fast machine learning method based static analysis. Machine learning is a time cost progress and taking the runtime of object program as the fitness of machine learning will makes this progress longer. Therefore for huge applications, such as CPU2000, time cost is even unbearable. So we presented a fast machine learning method based static analysis, the main idea is that we can use the information collected in the compilation progress to evaluate the corresponding optimization, and dumping some information in compiling progress doesn't put any extra burden on compiler. Usually some static information reflects optimization designer's idea, for example reducing spill code is the main idea of some register allocation. Then we will focus on hot regions to reduce the time cost and make the evaluation more accurate. Furthermore with the help of profiling information our fast machine learning can do a better job.Spill code sensitive learning and spill code & hot function sensitive learning are given based on the idea of fast machine learning method for register allocation. Spill code sensitive method can be implemented easily in register allocation of most compilers without any dynamic information or profiling feedback support, and only spill codes of hot files are used to evaluate the optimization. Spill code and hot function sensitive is a more accurate method, which focus on hot functions and take the spill codes' execution frequency as fitness with the edge profiling's support. These two methods only analyze the spill codes generated by register allocation and do not need to execute the program. The feedback of profiling can be calculated before the machine learning and be shared by each gene of genetic algorithm because the register allocation hardly changes the control flow graph. Thus our fast machine learning methods are much faster than method used execution time as fitness.Details of how to implement our spill code sensitive learning and spill code & hot function sensitive learning based on Meta Optimization to train the register allocation of Open...
Keywords/Search Tags:compiler adaption, compiler optimization, register allocation, fast machine learning, evaluation model, rough sets
PDF Full Text Request
Related items