[all-commits] [llvm/llvm-project] 3e45de: [CIR] Spill and reload values across deferred clea...

Andy Kaylor via All-commits all-commits at lists.llvm.org
Mon Jun 1 13:17:43 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3e45dea1ecce8e0360f58a74f2d4cd45eac301e4
      https://github.com/llvm/llvm-project/commit/3e45dea1ecce8e0360f58a74f2d4cd45eac301e4
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-06-01 (Mon, 01 Jun 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    A clang/test/CIR/CodeGen/cleanup-derived-to-base-ref.cpp

  Log Message:
  -----------
  [CIR] Spill and reload values across deferred cleanup scopes (#200904)

The `valuesToReload` handling in our `RunCleanupScope::forceCleanup()`
function was not taking into account cleanup scopes for deferred
conditional cleanups that get created when we call
`forceDeactivation()`. This was leading to a CIR verification error in
cases where a deferred cleanup was used in an expression that returns a
value.

This change adds code to spill values ahead of the `forceDeactivation()`
call when we see that there are cleanups on the deferred stack.

Assisted-by: Cursor / claude-opus-4.7



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