Peephole Optimizations: From Craft Towards Science

محفوظ في:
التفاصيل البيبلوغرافية
الحاوية / القاعدة:ProQuest Dissertations and Theses (2024)
المؤلف الرئيسي: Mukherjee, Manasij
منشور في:
ProQuest Dissertations & Theses
الموضوعات:
الوصول للمادة أونلاين:Citation/Abstract
Full Text - PDF
الوسوم: إضافة وسم
لا توجد وسوم, كن أول من يضع وسما على هذه التسجيلة!

MARC

LEADER 00000nab a2200000uu 4500
001 3156041743
003 UK-CbPIL
020 |a 9798302165084 
035 |a 3156041743 
045 2 |b d20240101  |b d20241231 
084 |a 66569  |2 nlm 
100 1 |a Mukherjee, Manasij 
245 1 |a Peephole Optimizations: From Craft Towards Science 
260 |b ProQuest Dissertations & Theses  |c 2024 
513 |a Dissertation/Thesis 
520 3 |a Peephole optimizations are a key component of optimizing compilers. The process of adding a new peephole optimization is manual and time-consuming. The focus of this dissertation is employing formal methods to aid developers in this process. This dissertation presents two techniques to improve the scalability of Souper, a superoptimizer for finding peephole optimizations for LLVM Intermediate Representation (IR). Finding optimization opportunities is merely a start—an optimization still needs to be generalized for it to be useful in a compiler. A superoptimizer does not help with this. The second part of this dissertation presents Hydra, a tool that uses synthesis to generalize peephole optimizations.Souper’s core algorithm is a lazy enumerative search to find optimizations and it uses Alive2—a translation validation tool for LLVM—to verify the optimizations. This dissertation presents a technique to improve the scalability of Souper by using dataflow analysis to prune the search space. This technique reduces the number of solver calls by 65% and makes Souper 2.32x faster for optimizing standard benchmarks. Enumeration—even with pruning—is hard to scale. This dissertation presents Iago— a drop in replacement for Souper that uses a Large Language Model (LLM), and complements it with formal verification to mitigate the risk of incorrect optimizations. Moreover, LLM results are often almost-valid, and Iago uses sketching to fix these results. Iago avoids direct enumeration, and thus, finds larger and more complex optimizations consisting of two or more instructions.The optimizations found manually, or with a superoptimizer, are often too specific to be implemented in a compiler. Hydra uses program synthesis techniques to generalize concrete constants to symbolic constants, find preconditions, and then ensure the optimization is independent of bitwidth whenever possible. Hydra was able to generalize 75% of the peephole optimizations posted to the LLVM project’s issue tracker. 
653 |a Computer science 
653 |a Engineering 
653 |a Artificial intelligence 
653 |a Information technology 
773 0 |t ProQuest Dissertations and Theses  |g (2024) 
786 0 |d ProQuest  |t ProQuest Dissertations & Theses Global 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3156041743/abstract/embedded/6A8EOT78XXH2IG52?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/3156041743/fulltextPDF/embedded/6A8EOT78XXH2IG52?source=fedsrch