[all-commits] [llvm/llvm-project] b23585: [clang] Use tighter lifetime bounds for C temporar...

Paul Kirth via All-commits all-commits at lists.llvm.org
Thu Dec 4 14:53:08 PST 2025


  Branch: refs/heads/users/ilovepi/clang-lifetimes-2
  Home:   https://github.com/llvm/llvm-project
  Commit: b23585403b26d267cf21fcff4f3c550b1b0dd597
      https://github.com/llvm/llvm-project/commit/b23585403b26d267cf21fcff4f3c550b1b0dd597
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGCall.h
    M clang/test/CodeGen/stack-usage-lifetimes.c
    M clang/test/CodeGenCXX/stack-reuse-miscompile.cpp

  Log Message:
  -----------
  [clang] Use tighter lifetime bounds for C temporary arguments

In C, consecutive statements in the same scope are under
CompoundStmt/CallExpr, while in C++ they typically fall under
CompoundStmt/ExprWithCleanup. This leads to different behavior with
respect to where pushFullExprCleanUp inserts the lifetime end markers
(e.g., at the end of scope).

For these cases, we can track and insert the lifetime end markers right
after the call completes. Allowing the stack space to be reused
immediately. This partially addresses #109204 and #43598 for improving
stack usage.


  Commit: 785603068a9b0a3f2b8d75aaedbf3e948cebd238
      https://github.com/llvm/llvm-project/commit/785603068a9b0a3f2b8d75aaedbf3e948cebd238
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp

  Log Message:
  -----------
  Update comment to be more accurate


  Commit: c2d60ae28f176b9079243711e3c663ad1c38b94a
      https://github.com/llvm/llvm-project/commit/c2d60ae28f176b9079243711e3c663ad1c38b94a
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp

  Log Message:
  -----------
  Update invoke test for tighter lifetimes


  Commit: 9dc7e8d5a95e0e27ebf53e2657fb931ca2e38ecc
      https://github.com/llvm/llvm-project/commit/9dc7e8d5a95e0e27ebf53e2657fb931ca2e38ecc
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/test/CodeGen/lifetime-invoke-c.c
    M clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp

  Log Message:
  -----------
  Add cleanups for the error path and add more tests


  Commit: 1f7a5a32c47b41748d43db15589f061d1e81707e
      https://github.com/llvm/llvm-project/commit/1f7a5a32c47b41748d43db15589f061d1e81707e
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp

  Log Message:
  -----------
  Avoid checking NoLifetimeMarkersForTemporaries


  Commit: eb19707ea5a954e864f15e748f7edc21c4b319a4
      https://github.com/llvm/llvm-project/commit/eb19707ea5a954e864f15e748f7edc21c4b319a4
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp

  Log Message:
  -----------
  git clang-format


  Commit: 4f509487ab392442ae418a9353c819d3fbb034a6
      https://github.com/llvm/llvm-project/commit/4f509487ab392442ae418a9353c819d3fbb034a6
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-12-04 (Thu, 04 Dec 2025)

  Changed paths:
    M clang/test/CodeGen/lifetime-invoke-c.c

  Log Message:
  -----------
  Fix test checks


Compare: https://github.com/llvm/llvm-project/compare/0c900dbada58...4f509487ab39

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