[PATCH] D18427: CodeGen: Add DetectDeadLanes pass.

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 23 20:50:24 PDT 2016


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

The DetectDeadLanes pass performs a dataflow analysis of used/defined
subregister lanes across COPY instructions and instructions that will
get lowered to copies. It detects dead definitions and uses reading
undefined values which are obscured by COPY and subregister usage.

These dead definitions cause trouble in the register coalescer which
cannot deal with definitions suddenly becoming dead after coalescing
COPY instructions.

For now the pass only adds dead and undef flags to machine operands. It
should be easy to extend it in the future to remove the dead
instructions and redo the analysis for the affected virtual
registers.

Repository:
  rL LLVM

http://reviews.llvm.org/D18427

Files:
  include/llvm/CodeGen/Passes.h
  include/llvm/InitializePasses.h
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/CodeGen.cpp
  lib/CodeGen/DetectDeadLanes.cpp
  lib/CodeGen/Passes.cpp
  test/CodeGen/AMDGPU/detect-dead-lanes.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18427.51508.patch
Type: text/x-patch
Size: 29521 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160324/942e837a/attachment.bin>


More information about the llvm-commits mailing list