[all-commits] [llvm/llvm-project] 44cfc3: [LICM] Generalize unwinding check during scalar pr...

Nikita Popov via All-commits all-commits at lists.llvm.org
Wed Jan 26 02:15:18 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 44cfc3a8169cfa3f6a2824ed9cee9ff269f5a8ea
      https://github.com/llvm/llvm-project/commit/44cfc3a8169cfa3f6a2824ed9cee9ff269f5a8ea
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-01-26 (Wed, 26 Jan 2022)

  Changed paths:
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/lib/Analysis/AliasAnalysis.cpp
    M llvm/lib/Transforms/Scalar/LICM.cpp
    M llvm/test/Transforms/LICM/scalar-promote-unwind.ll

  Log Message:
  -----------
  [LICM] Generalize unwinding check during scalar promotion

This extract a common isNotVisibleOnUnwind() helper into
AliasAnalysis, which handles allocas, byval arguments and noalias
calls. After D116998 this could also handle sret arguments. We
have similar logic in DSE and MemCpyOpt, which will be switched
to use this helper as well.

The noalias call case is a bit different from the others, because
it also requires that the object is not captured. The caller is
responsible for doing the appropriate check.

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




More information about the All-commits mailing list