[all-commits] [llvm/llvm-project] c456fd: [CIR] Upstream framework for NRVO cleanup (#170569)

Andy Kaylor via All-commits all-commits at lists.llvm.org
Thu Dec 4 13:09:02 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c456fd83f25276cf5819c2dafc687c78f03b2ab5
      https://github.com/llvm/llvm-project/commit/c456fd83f25276cf5819c2dafc687c78f03b2ab5
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
    M clang/include/clang/CIR/MissingFeatures.h
    M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
    M clang/test/CIR/CodeGen/nrvo.cpp

  Log Message:
  -----------
  [CIR] Upstream framework for NRVO cleanup (#170569)

This upstreams the framework code to handle NRVO cleanup. At this point
the implementation follows the incubator in not performing the actual
cleanup, but it populates the EH stack so that the cleanup can be done.

This inserts a flag variable that tracks whether we are performing an
NRVO return. Classic codegen checks this variable and calls a destructor
if it is not set during normal cleanup. The check and destructor call
are not yet implemented here.



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