[all-commits] [llvm/llvm-project] 08dda4: [Analysis][EphemeralValuesCache][InlineCost] Ephem...

vporpo via All-commits all-commits at lists.llvm.org
Wed Mar 19 18:19:07 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 08dda4dcbf6427e357830d9c7f7ac3b422fc75f6
      https://github.com/llvm/llvm-project/commit/08dda4dcbf6427e357830d9c7f7ac3b422fc75f6
  Author: vporpo <vporpodas at google.com>
  Date:   2025-03-19 (Wed, 19 Mar 2025)

  Changed paths:
    A llvm/include/llvm/Analysis/EphemeralValuesCache.h
    M llvm/include/llvm/Analysis/InlineCost.h
    M llvm/lib/Analysis/CMakeLists.txt
    A llvm/lib/Analysis/EphemeralValuesCache.cpp
    M llvm/lib/Analysis/InlineAdvisor.cpp
    M llvm/lib/Analysis/InlineCost.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/IPO/Inliner.cpp
    M llvm/test/Transforms/Inline/cgscc-incremental-invalidate.ll
    M llvm/unittests/Analysis/CMakeLists.txt
    A llvm/unittests/Analysis/EphemeralValuesCacheTest.cpp

  Log Message:
  -----------
  [Analysis][EphemeralValuesCache][InlineCost] Ephemeral values caching for the CallAnalyzer (#130210)

This patch does two things:

1. It implements an ephemeral values cache analysis pass that collects the ephemeral values of a function and caches them for fast lookups. The collection of the ephemeral values is done lazily when the user calls `EphemeralValuesCache::ephValues()`.

2. It adds caching of ephemeral values using the `EphemeralValuesCache` to speed up `CallAnalyzer::analyze()`. Without caching this can take a long time to run in cases where the function contains a large number of `@llvm.assume()` calls and a large number of callsites. The time is spent in `collectEphemeralvalues()`.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list