[PATCH] D30439: [AMDGPU] New method to estimate register pressure

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 27 19:07:57 PST 2017


rampitec created this revision.
Herald added subscribers: tpr, dstuttard, tony-tye, yaxunl, nhaehnle, wdng, kzhuravl, arsenm.

This change introduces new method to estimate register pressure in
GCNScheduler. Standard RPTracker gives huge error due to the following
reasons:

1. It does not account for live-ins or live-outs if value is not used

in the region itself. That creates a huge error in a very common case
if there are a lot of live-thu registers.

2. It does not properly count subregs.
3. It assumes a register used as an input operand can be reused as an

output. This is not always possible by itself, this is not what RA
will finally do in many cases for various reasons not limited to RA's
inability to do so, and this is not so if the value is actually a
live-thu.

In addition we can now see clear separation between live-in pressure
which we cannot change with the scheduling and tentative pressure
which we can change.


Repository:
  rL LLVM

https://reviews.llvm.org/D30439

Files:
  lib/Target/AMDGPU/GCNSchedStrategy.cpp
  lib/Target/AMDGPU/GCNSchedStrategy.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30439.89962.patch
Type: text/x-patch
Size: 9020 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170228/57e412c8/attachment.bin>


More information about the llvm-commits mailing list