Compiler generated feedback for Large Language Models
This addresses code optimization efficiency for compiler developers, though it appears incremental as simple sampling techniques outperform it with more samples.
The paper tackles the problem of optimizing code size in LLVM assembly by introducing a compiler feedback mechanism for Large Language Models, achieving an additional 0.53% improvement over the baseline -Oz optimization.
We introduce a novel paradigm in compiler optimization powered by Large Language Models with compiler feedback to optimize the code size of LLVM assembly. The model takes unoptimized LLVM IR as input and produces optimized IR, the best optimization passes, and instruction counts of both unoptimized and optimized IRs. Then we compile the input with generated optimization passes and evaluate if the predicted instruction count is correct, generated IR is compilable, and corresponds to compiled code. We provide this feedback back to LLM and give it another chance to optimize code. This approach adds an extra 0.53% improvement over -Oz to the original model. Even though, adding more information with feedback seems intuitive, simple sampling techniques achieve much higher performance given 10 or more samples.