RL4ReAl: Reinforcement Learning for Register Allocation
We aim to automate decades of research and experience in register allocation, leveraging machine learning. We tackle this problem by embedding a multi-agent reinforcement learning algorithm within LLVM, training it with the state of the art techniques. We formalize the constraints that precisely define the problem for a given instruction-set architecture, while ensuring that the generated code preserves semantic correctness. We also develop a gRPC based framework providing a modular and efficient compiler interface for training and inference. Our approach is architecture independent: we show experimental results targeting Intel x86 and ARM AArch64. Our results match or out-perform the heavily tuned, production-grade register allocators of LLVM.
Code (0)
등록된 구현이 없습니다.
Tasks
Hierarchical Reinforcement LearningMulti-agent Reinforcement Learningreinforcement-learningReinforcement LearningReinforcement Learning (RL)Similar Papers 제목 키워드 기반
Reinforcement Learning for Graph Coloring: Understanding the Power and Limits of Non-Label Invariant Representations
Register allocation is one of the most important problems for modern compilers. With a practically unlimited number of user variables and a small number of CPU registers, assigning variables to registers without conflict…
CPUVeriLocc: End-to-End Cross-Architecture Register Allocation via LLM
Modern GPUs evolve rapidly, yet production compilers still rely on hand-crafted register allocation heuristics that require substantial re-tuning for each hardware generation. We introduce VeriLocc, a framework that comb…
GPUDeep Learning-based Hybrid Graph-Coloring Algorithm for Register Allocation
Register allocation, which is a crucial phase of a good optimizing compiler, relies on graph coloring. Hence, an efficient graph coloring algorithm is of paramount importance. In this work we try to learn a good heuristi…
CPUDeep LearningRegister Your Forests: Decision Tree Ensemble Optimization by Explicit CPU Register Allocation
Bringing high-level machine learning models to efficient and well-suited machine implementations often invokes a bunch of tools, e.g.~code generators, compilers, and optimizers. Along such tool chains, abstractions have …
C++ codeCode GenerationCPUGraph Convolutional Policy for Solving Tree Decomposition via Reinforcement Learning Heuristics
We propose a Reinforcement Learning based approach to approximately solve the Tree Decomposition (TD) problem. TD is a combinatorial problem, which is central to the analysis of graph minor structure and computational co…
reinforcement-learningReinforcement LearningReinforcement Learning (RL)Tree Decomposition