[PATCH] D14966: LiveIntervalAnalysis: Add function to reassign vregs of dead subregister defs

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 24 13:50:46 PST 2015


MatzeB created this revision.
MatzeB added a reviewer: atrick.
MatzeB added subscribers: llvm-commits, tstellarAMD, arsenm, escha.
MatzeB set the repository for this revision to rL LLVM.
Herald added a subscriber: MatzeB.

Normally dead definitions have an own vreg when coming out of SSA form.
However we do not have a static single assignment property at the
subregister level, so we cannot easily detect dead subregister
definitions without doing subregister liveness analysis. We also cannot
mark them with a dead flag unless all lanes (even the ones not
affected by the subregister definition) are dead.

The new LiveIntervalAnalysis::renameDeadSubRegDefs() detects dead
subregister definitions based on liveness information and assigns them
to new vreg.

This is intended as a prepass to subregister aware scheduling and avoids
the formation of multiple connected components in liveintervals if dead
subregister defs are moved. It may also have some positive effects on
the allocation by removing unnecessary constraints.

Repository:
  rL LLVM

http://reviews.llvm.org/D14966

Files:
  include/llvm/CodeGen/LiveIntervalAnalysis.h
  lib/CodeGen/LiveIntervalAnalysis.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14966.41080.patch
Type: text/x-patch
Size: 3641 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151124/33e0ae17/attachment.bin>


More information about the llvm-commits mailing list