https://github.com/sdasgup3/partial-redundancy-elimination
Partial Redundancy Elimination Pass in LLVM
https://github.com/sdasgup3/partial-redundancy-elimination
bitvector common-subexpression-elimination compiler-optimization data-flow-analysis llvm loop-invariants
Last synced: about 1 month ago
JSON representation
Partial Redundancy Elimination Pass in LLVM
- Host: GitHub
- URL: https://github.com/sdasgup3/partial-redundancy-elimination
- Owner: sdasgup3
- License: mit
- Created: 2014-03-27T09:40:09.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2019-05-20T17:21:11.000Z (about 6 years ago)
- Last Synced: 2025-03-26T08:51:33.443Z (about 2 months ago)
- Topics: bitvector, common-subexpression-elimination, compiler-optimization, data-flow-analysis, llvm, loop-invariants
- Language: TeX
- Homepage:
- Size: 22.7 MB
- Stars: 13
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://zenodo.org/badge/latestdoi/18170897)
Partial Redundancy Elimination (PRE)
====================================PRE is a compiler optimization that eliminates
expressions that are redundant on some but not necessarily all paths through a
program. We implement a PRE optimization pass in the LLVM framework, and evaluate the benefits
on a variety of applications. PRE is a powerful technique that subsumes
Common Subexpression Elimination (CSE) and Loop Invariant Code Motion (LICM), and hence has a potential to
greatly improve performance.Commands
-------opts_lcm = "-mem2reg -loop-rotate -reassociate -lcm -mem2reg -simplifycfy;
$opt -load $load_pass $opts_lcm $test.bc -o $test-lcm.bc