[all-commits] [llvm/llvm-project] 56f7de: [InstCombine] Remove trivially empty ranges from end

Nikita Popov via All-commits all-commits at lists.llvm.org
Wed Feb 26 11:04:44 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 56f7de5baae3ae9a746ac8f5a8e32cfcaf7b4a6b
      https://github.com/llvm/llvm-project/commit/56f7de5baae3ae9a746ac8f5a8e32cfcaf7b4a6b
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-02-26 (Wed, 26 Feb 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/test/Transforms/InstCombine/lifetime.ll
    M llvm/test/Transforms/InstCombine/vararg.ll

  Log Message:
  -----------
  [InstCombine] Remove trivially empty ranges from end

InstCombine removes pairs of start+end intrinsics that don't
have anything in between them. Currently this is done by starting
at the start intrinsic and scanning forwards. This patch changes
it to start at the end intrinsic and scan backwards.

The motivation here is as follows: When we process the start
intrinsic, we have not yet looked at the following instructions,
which may still get folded/removed. If they do, we will only be
able to remove the start/end pair on the next iteration. When we
process the end intrinsic, all the instructions before it have
already been visited, and we don't run into this problem.

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




More information about the All-commits mailing list