This is an archive of the discontinued LLVM Phabricator instance.

RegisterPressure: Expose RegisterOperands API
ClosedPublic

Authored by MatzeB on Dec 11 2015, 6:51 PM.

Details

Summary

Previously the RegisterOperands have only been used internally in
RegisterPressure.cpp. However this datastructure can be useful for other
tasks as well and allows refactoring of PDiff initialisation out of
RPTracker::recede().

This patch:

  • Exposes RegisterOperands as public API
  • Splits RPTracker::recede() into a part that skips DebugValues and maintains the region borders, and the core that changes register pressure when given a set of RegisterOperands.
  • This allows to move the PDiff initialisation out recede() into a method of the PressureDiffs class.
  • The upcoming subregister scheduling code will also use RegisterOperands to avoid pushing more unrelated functionality into recede()/advance().

Diff Detail

Repository
rL LLVM

Event Timeline

MatzeB updated this revision to Diff 42617.Dec 11 2015, 6:51 PM
MatzeB retitled this revision from to RegisterPressure: Expose RegisterOperands API.
MatzeB updated this object.
MatzeB added a reviewer: atrick.
MatzeB set the repository for this revision to rL LLVM.
MatzeB added a subscriber: llvm-commits.
atrick accepted this revision.Jan 12 2016, 2:20 PM
atrick edited edge metadata.

LGTM. Thanks!

This revision is now accepted and ready to land.Jan 12 2016, 2:20 PM
This revision was automatically updated to reflect the committed changes.