[all-commits] [llvm/llvm-project] 85322e: [TwoAddressInstructionPass] Special processing of ...

dantrushin via All-commits all-commits at lists.llvm.org
Mon May 30 09:08:01 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 85322e82be5014fb0abddb3a36df928d16760fba
      https://github.com/llvm/llvm-project/commit/85322e82be5014fb0abddb3a36df928d16760fba
  Author: Denis Antrushin <dantrushin at azul.com>
  Date:   2022-05-30 (Mon, 30 May 2022)

  Changed paths:
    M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
    M llvm/test/CodeGen/X86/statepoint-invoke-ra.mir
    A llvm/test/CodeGen/X86/statepoint-vreg-twoaddr.mir
    M llvm/test/CodeGen/X86/statepoint-vreg-unlimited-tied-opnds.ll

  Log Message:
  -----------
  [TwoAddressInstructionPass] Special processing of STATEPOINT instruction.

STATEPOINT is a special pseudo instruction which represent Moving GC semantic to LLVM.
Every tied def/use VReg pair in STATEPOINT represent same physical register which can
'magically' change during call wrapped by statepoint.
(By construction, tied use operand  is not live across  STATEPOINT).

This means that when converting into two-address form, there is not need to insert COPY
instruction before stateppoint, what TwoAddressInstruction pass does for 'regular'
instructions.

Reviewed By: MatzeB

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




More information about the All-commits mailing list