paper-with-me

Papers

IR2Vec: LLVM IR based Scalable Program Embeddings

2019-09-13 · S. VenkataKeerthy, Rohit Aggarwal, Shalini Jain, Maunendra Sankar Desarkar, Ramakrishna Upadrasta, Y. N. Srikant

We propose IR2Vec, a Concise and Scalable encoding infrastructure to represent programs as a distributed embedding in continuous space. This distributed embedding is obtained by combining representation learning methods with flow information to capture the syntax as well as the semantics of the input programs. As our infrastructure is based on the Intermediate Representation (IR) of the source code, obtained embeddings are both language and machine independent. The entities of the IR are modeled as relationships, and their representations are learned to form a seed embedding vocabulary. Using this infrastructure, we propose two incremental encodings:Symbolic and Flow-Aware. Symbolic encodings are obtained from the seed embedding vocabulary, and Flow-Aware encodings are obtained by augmenting the Symbolic encodings with the flow information. We show the effectiveness of our methodology on two optimization tasks (Heterogeneous device mapping and Thread coarsening). Our way of representing the programs enables us to use non-sequential models resulting in orders of magnitude of faster training time. Both the encodings generated by IR2Vec outperform the existing methods in both the tasks, even while using simple machine learning models. In particular, our results improve or match the state-of-the-art speedup in 11/14 benchmark-suites in the device mapping task across two platforms and 53/68 benchmarks in the Thread coarsening task across four different platforms. When compared to the other methods, our embeddings are more scalable, is non-data-hungry, and has betterOut-Of-Vocabulary (OOV) characteristics.

📄 PDF Abstract BibTeX arXiv:1909.06228

Code (1)

IITH-Compilers/IR2Vec 공식 구현

Tasks

Representation Learning

Similar Papers 제목 키워드 기반

LLVM-Bench: Benchmarking and Advancing Large Language Models for LLVM Compiler Issue Resolution

2026-07-01 · Zhao Tian, Yingquan Zhao, Chenyao Suo, Meng Wang 외 arxiv

LLVM is a widely used compiler infrastructure whose scale and complexity make issue resolution labor-intensive and challenging. Although large language models (LLMs) have recently achieved remarkable success in issue res…

Using LLVM-based JIT Compilation in Genetic Programming

2017-01-20 · Michal Gregor, Juraj Spalek

The paper describes an approach to implementing genetic programming, which uses the LLVM library to just-in-time compile/interpret the evolved abstract syntax trees. The solution is described in some detail, including a …

Optimizing LLVM Pass Sequences with Shackleton: A Linear Genetic Programming Framework

2022-01-31 · Hannah Peeler, Shuyue Stella Li, Andrew N. Sloss, Kenneth N. Reid 외

In this paper we introduce Shackleton as a generalized framework enabling the application of linear genetic programming -- a technique under the umbrella of evolutionary algorithms -- to a variety of use cases. We also e…

Evolutionary Algorithms

Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients

2020-10-04 · NeurIPS 2020 12 · William S. Moses, Valentin Churavy

Applying differentiable programming techniques and machine learning algorithms to foreign programs requires developers to either rewrite their code in a machine learning framework, or otherwise provide derivatives of the…

BIG-bench Machine Learning

A Case Study of LLVM-Based Analysis for Optimizing SIMD Code Generation

2021-06-27 · Joseph Huber, Weile Wei, Giorgis Georgakoudis, Johannes Doerfert 외

This paper presents a methodology for using LLVM-based tools to tune the DCA++ (dynamical clusterapproximation) application that targets the new ARM A64FX processor. The goal is to describethe changes required for the ne…

Code Generation