English
Related papers

Related papers: Caviar: An E-graph Based TRS for Automatic Code Op…

200 papers

String diagrams provide an intuitive language for expressing networks of interacting processes graphically. A discrete representation of string diagrams, called string graphs, allows for mechanised equational reasoning by double-pushout…

Logic in Computer Science · Computer Science 2015-10-14 Aleks Kissinger , Vladimir Zamdzhiev

Multiplier circuits account for significant resource usage in datapath-dominated circuit designs, and RTL designers continue to build bespoke hand-crafted multiplication arrays for their particular application. The construction of an…

Hardware Architecture · Computer Science 2023-12-12 Andy Wanna , Samuel Coward , Theo Drane , George A. Constantinides , Miloš D. Ercegovac

An optimizing compiler consists of a front end parsing a textual programming language into an intermediate representation (IR), a middle end performing optimizations on the IR, and a back end lowering the IR to a target representation (TR)…

Programming Languages · Computer Science 2011-11-22 Sebastian Buchwald , Edgar Jakumeit

In technology mapping, the quality of the final implementation heavily relies on the circuit structure after technology-independent optimization. Recent studies have introduced equality saturation as a novel optimization approach. However,…

Hardware Architecture · Computer Science 2025-04-22 Chen Chen , Guangyu HU , Cunxi Yu , Yuzhe Ma , Hongce Zhang

In solving mathematical optimization problems efficiently, it is crucial to make use of information about specific types of constraints, such as the one-hot or Special-Ordered Set (SOS) constraints. In many cases, exploiting such…

Programming Languages · Computer Science 2025-06-10 Hiromi Ishii , Taro Shimizu , Toshiki Teramura

Optimizations in a traditional compiler are applied sequentially, with each optimization destructively modifying the program to produce a transformed program that is then passed to the next optimization. We present a new approach for…

Programming Languages · Computer Science 2015-07-01 Ross Tate , Michael Stepp , Zachary Tatlock , Sorin Lerner

Automatic code optimization is a complex process that typically involves the application of multiple discrete algorithms that modify the program structure irreversibly. However, the design of these algorithms is often monolithic, and they…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-09-18 Kazuaki Matsumura , Simon Garcia De Gonzalo , Antonio J. Peña

E-graphs are a prominent data structure that has been increasing in popularity in recent years due to their expanding range of applications in various formal reasoning tasks. Often, they are used for equality saturation, a process of…

Programming Languages · Computer Science 2023-05-31 Eytan Singher , Shachar Itzhaky

Generating high-performance code for diverse hardware and application domains is challenging. Functional array programming languages with patterns like map and reduce have been successfully combined with term rewriting to define and explore…

Programming Languages · Computer Science 2022-06-06 Thomas Koehler , Phil Trinder , Michel Steuwer

This thesis proposes an advanced, generic and high-level code rewriting and analysis system in the Julia programming language, providing applied equality saturation in the presence of multiple dispatch and metaprogramming. We show how our…

Programming Languages · Computer Science 2022-02-08 Alessandro Cheli

E-graphs are a data structure that compactly represents equivalent expressions. They are constructed via the repeated application of rewrite rules. Often in practical applications, conditional rewrite rules are crucial, but their…

Data Structures and Algorithms · Computer Science 2023-08-16 Samuel Coward , George A. Constantinides , Theo Drane

Control-flow graphs (CFGs) of structured programs are well known to exhibit strong sparsity properties. Traditionally, this sparsity has been modeled using graph parameters such as treewidth and pathwidth, enabling the development of faster…

Programming Languages · Computer Science 2026-02-10 Xuran Cai , Amir Goharshady , S Hitarth , Chun Kit Lam

The generation of explanation graphs is a significant task that aims to produce explanation graphs in response to user input, revealing the internal reasoning process. This task is challenging due to the significant discrepancy between…

Computation and Language · Computer Science 2023-06-02 Han Cui , Shangzhan Li , Yu Zhang , Qi Shi

Formulating an effective constraint model of a parameterised problem class is crucial to the efficiency with which instances of the class can subsequently be solved. It is difficult to know beforehand which of a set of candidate models will…

Artificial Intelligence · Computer Science 2024-11-15 Ian Miguel , András Z. Salamon , Christopher Stone

Egel is an untyped eager combinator toy language. Its primary purpose is to showcase an abstract graph-rewriting semantics allowing a robust memory-safe construction in C++. Though graph rewriters are normally implemented by elaborate…

Programming Languages · Computer Science 2020-04-22 M. C. A. , Devillers

Traditional automated theorem provers have relied on manually tuned heuristics to guide how they perform proof search. Recently, however, there has been a surge of interest in the design of learning mechanisms that can be integrated into…

Learning vectorized embeddings is fundamental to many recommender systems for user-item matching. To enable efficient online inference, representation binarization, which embeds latent features into compact binary sequences, has recently…

Information Retrieval · Computer Science 2025-06-04 Yankai Chen , Yue Que , Xinni Zhang , Chen Ma , Irwin King

We give a procedure that can be used to automatically satisfy invariants of a certain shape. These invariants may be written with the operations intersection, composition and converse over binary relations, and equality over these…

Logic in Computer Science · Computer Science 2018-06-26 Sebastiaan J. C. Joosten

Term rewriting plays a crucial role in software verification and compiler optimization. With dozens of highly parameterizable techniques developed to prove various system properties, automatic term rewriting tools work in an extensive…

Logic in Computer Science · Computer Science 2025-08-01 Liao Zhang , Fabian Mitterwallner , Jan Jakubuv , Cezary Kaliszyk

Manual RTL design and optimization remains prevalent across the semiconductor industry because commercial logic and high-level synthesis tools are unable to match human designs. Our experience in industrial datapath design demonstrates that…

Hardware Architecture · Computer Science 2024-06-19 Samuel Coward , Theo Drane , George A. Constantinides