[all-commits] [llvm/llvm-project] 2fccd1: [Statepoint Lowering] Fix the crash with gc.reloca...

serguei-katkov via All-commits all-commits at lists.llvm.org
Wed Mar 10 04:51:49 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2fccd1b00a7667228a0b5f167b2936b69b717372
      https://github.com/llvm/llvm-project/commit/2fccd1b00a7667228a0b5f167b2936b69b717372
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-03-10 (Wed, 10 Mar 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
    A llvm/test/CodeGen/X86/statepoint-spill-lowering.ll

  Log Message:
  -----------
  [Statepoint Lowering] Fix the crash with gc.relocate in a separate block

If it was decided to relocate derived pointer using the spill its value is
not exported in general case.
When gc.relocate is located in an another block than a statepoint we cannot
get SD for derived value but for spill case it is not required at all.
However implementation of gc.relocate lowering unconditionally request SD value
causing the assert triggering.

The CL fixes this by handling spill case earlier than SD is really required.

Reviewers: reames, dantrushin
Reviewed By: dantrushin
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D98324




More information about the All-commits mailing list