# Partial Redundancy Elimination using Lazy Code Motion

**Authors:** Sandeep Dasgupta, Tanmay Gangwani

arXiv: 1905.08178 · 2019-05-22

## TL;DR

This paper presents an implementation of Partial Redundancy Elimination (PRE) in LLVM, demonstrating its potential to significantly improve program performance by optimizing redundant expressions across different paths.

## Contribution

The paper introduces a new PRE optimization pass in LLVM, expanding the compiler's capabilities to eliminate partial redundancies more effectively.

## Key findings

- Implemented PRE in LLVM and tested on various applications.
- PRE subsumes CSE and LICM, leading to performance improvements.
- Experimental results show notable optimization benefits.

## Abstract

Partial Redundancy Elimination (PRE) is a compiler optimization that eliminates expressions that are redundant on some but not necessarily all paths through a program. In this project, we implemented a PRE optimization pass in LLVM and measured results on a variety of applications. We chose PRE because it is a powerful technique that subsumes Common Subexpression Elimination (CSE) and Loop Invariant Code Motion (LICM), and hence has the potential to greatly improve performance.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1905.08178/full.md

## Figures

8 figures with captions in the complete paper: https://tomesphere.com/paper/1905.08178/full.md

## References

12 references — full list in the complete paper: https://tomesphere.com/paper/1905.08178/full.md

---
Source: https://tomesphere.com/paper/1905.08178