RegisterPressure: Expose RegisterOperands API
authorMatthias Braun <matze@braunis.de>
Tue, 12 Jan 2016 22:57:35 +0000 (22:57 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 12 Jan 2016 22:57:35 +0000 (22:57 +0000)
commit4adfe414ef79d6c457ff3307858396d214a536ac
treeee2cfcbf170b3fde6624f119793b0f57ecd30a16
parent58b254770aa7fa5da55181d6cc31646388d9493c
RegisterPressure: Expose RegisterOperands API

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().

Differential Revision: http://reviews.llvm.org/D15473

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257535 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/RegisterPressure.h
lib/CodeGen/RegisterPressure.cpp
lib/CodeGen/ScheduleDAGInstrs.cpp