[all-commits] [llvm/llvm-project] ba664d: [AA] Move earliest escape tracking from DSE to AA

Nikita Popov via All-commits all-commits at lists.llvm.org
Sat Sep 25 13:47:16 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ba664d906644e62ac30e9a92edf48391c923992c
      https://github.com/llvm/llvm-project/commit/ba664d906644e62ac30e9a92edf48391c923992c
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-09-25 (Sat, 25 Sep 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/lib/Analysis/AliasAnalysis.cpp
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/test/Transforms/DeadStoreElimination/captures-before-call.ll
    M llvm/test/Transforms/DeadStoreElimination/captures-before-load.ll
    M llvm/unittests/Analysis/BasicAliasAnalysisTest.cpp

  Log Message:
  -----------
  [AA] Move earliest escape tracking from DSE to AA

This is a followup to D109844 (and alternative to D109907), which
integrates the new "earliest escape" tracking into AliasAnalysis.
This is done by replacing the pre-existing context-free capture
cache in AAQueryInfo with a replaceable (virtual) object with two
implementations: The SimpleCaptureInfo implements the previous
behavior (check whether object is captured at all), while
EarliestEscapeInfo implements the new behavior from DSE.

This combines the "earliest escape" analysis with the full power of
BasicAA: It subsumes the call handling from D109907, considers a
wider range of escape sources, and works with AA recursion. The
compile-time cost is slightly higher than with D109907.

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




More information about the All-commits mailing list