This is an archive of the discontinued LLVM Phabricator instance.

[MLIR][Presburger][Simplex] symbolic lexmin: add some normalization heuristics
ClosedPublic

Authored by arjunp on Apr 7 2022, 8:16 AM.

Details

Summary

Normalize some of the division and inequality expressions used,
which can improve performance. Also deduplicate some of the
normalization functionality throughout the Presburger library.

Diff Detail

Event Timeline

arjunp created this revision.Apr 7 2022, 8:16 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 7 2022, 8:16 AM
arjunp requested review of this revision.Apr 7 2022, 8:16 AM
Groverkss added inline comments.Apr 9 2022, 2:30 AM
mlir/lib/Analysis/Presburger/Simplex.cpp
163–164
arjunp added inline comments.Apr 10 2022, 1:13 PM
mlir/lib/Analysis/Presburger/Simplex.cpp
163–164

Good point. I removed SimplexBase::normalizeRow and replaced it with Matrix::normalizeRow. I also replaced Matrix::normalizeRow's implementation with just a call through to normalizeRange

arjunp updated this revision to Diff 421806.Apr 10 2022, 1:13 PM

Address comments

arjunp edited the summary of this revision. (Show Details)Apr 10 2022, 1:29 PM
Groverkss accepted this revision.Apr 11 2022, 7:31 AM

LGTM. The Debian build failure seems unrelated.

This revision is now accepted and ready to land.Apr 11 2022, 7:31 AM
This revision was landed with ongoing or failed builds.Apr 11 2022, 12:46 PM
This revision was automatically updated to reflect the committed changes.