[all-commits] [llvm/llvm-project] 9cf675: [RISCVRVVInitUndef] Remove implicit single use ass...

Philip Reames via All-commits all-commits at lists.llvm.org
Thu Jul 27 16:31:22 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9cf675923afa73a3dbe575803ebbbe9146701df8
      https://github.com/llvm/llvm-project/commit/9cf675923afa73a3dbe575803ebbbe9146701df8
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-07-27 (Thu, 27 Jul 2023)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVRVVInitUndef.cpp
    M llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.ll
    A llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.mir

  Log Message:
  -----------
  [RISCVRVVInitUndef] Remove implicit single use assumption for IMPLICIT_DEF

The code was written with the implicit assumption that each IMPLICIT_DEF either a) the tied operand, or b) an untied source, but not both. This is true right now, but an upcoming change may allow CSE of IMPLICIT_DEFs in some cases, so let's rewrite the code to handle that possibility.

I added an MIR case which demonstrates the multiple use IMPLICIT_DEF. To my knowledge, this is not a reachable configuration from IR right now.

As an aside, this makes the structure a much closer match with the sub-reg liveness case, and we can probably just merge these routines. (Future work.)

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




More information about the All-commits mailing list