[all-commits] [llvm/llvm-project] c54c76: Prevent dead uses in register coalescer after rema...

Stanislav Mekhanoshin via All-commits all-commits at lists.llvm.org
Wed Jul 21 15:20:22 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c54c76037b9d7e611fc3c2955b2b9a7934fbb957
      https://github.com/llvm/llvm-project/commit/c54c76037b9d7e611fc3c2955b2b9a7934fbb957
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/LiveRangeEdit.h
    M llvm/lib/CodeGen/RegisterCoalescer.cpp
    A llvm/test/CodeGen/AMDGPU/coalescer-remat-dead-use.mir

  Log Message:
  -----------
  Prevent dead uses in register coalescer after rematerialization

The coalescer does not check if register uses are available
at the point of rematerialization. If it attempts to rematerialize
an instruction with such uses it can end up with use without a def.

LiveRangeEdit does such check during rematerialization, so just
call LiveRangeEdit::allUsesAvailableAt() to avoid the problem.

Differential Revision: https://reviews.llvm.org/D106396




More information about the All-commits mailing list