[all-commits] [llvm/llvm-project] 63d9d5: [InstCombine] Move handling of gc.relocate in a gc...

serguei-katkov via All-commits all-commits at lists.llvm.org
Fri Aug 21 09:50:07 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 63d9d56a5546c4aed84c39dde797a3ba5bbfaeff
      https://github.com/llvm/llvm-project/commit/63d9d56a5546c4aed84c39dde797a3ba5bbfaeff
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2020-08-21 (Fri, 21 Aug 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  Log Message:
  -----------
  [InstCombine] Move handling of gc.relocate in a gc.statepoint

The only def for gc.relocate is a gc.statepoint. But real dependency is not
described by def-use chain. Instead this dependency is encoded by indecies
of operands in gc-live bundle of statepoint as integer constants in gc.relocate.

InstCombine operates by def-use chain. As a result when value in gc-live bundle
is simplified the gc.statepoint itself is not simplified but it might simplify dependent
gc.relocates. To trigger the optimization of gc.relocate we now unconditionally trigger
check of all dependent gc.relocates by adding them to worklist.

This CL handles of gc.relocates as process of gc.statepoint optimization considering
gc.statepoint and related gc.relocate as whole entity.

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




More information about the All-commits mailing list