[all-commits] [llvm/llvm-project] c9a52d: [CodeGen] Simplify the way lifetime of block captu...

Akira Hatanaka via All-commits all-commits at lists.llvm.org
Thu Jun 11 16:06:47 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c9a52de0026093327daedda7ea2eead8b64657b4
      https://github.com/llvm/llvm-project/commit/c9a52de0026093327daedda7ea2eead8b64657b4
  Author: Akira Hatanaka <ahatanaka at apple.com>
  Date:   2020-06-11 (Thu, 11 Jun 2020)

  Changed paths:
    M clang/lib/CodeGen/CGBlocks.cpp
    M clang/lib/CodeGen/CGBlocks.h
    M clang/lib/CodeGen/CGCleanup.cpp
    M clang/lib/CodeGen/CGCleanup.h
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CGObjC.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/EHScopeStack.h
    M clang/test/CodeGenCXX/blocks-cxx11.cpp
    M clang/test/CodeGenCXX/blocks.cpp
    M clang/test/CodeGenObjC/arc-blocks.m
    M clang/test/CodeGenObjC/arc-foreach.m
    M clang/test/CodeGenObjC/noescape.m
    M clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl

  Log Message:
  -----------
  [CodeGen] Simplify the way lifetime of block captures is extended

Rather than pushing inactive cleanups for the block captures at the
entry of a full expression and activating them during the creation of
the block literal, just call pushLifetimeExtendedDestroy to ensure the
cleanups are popped at the end of the scope enclosing the block
expression.

rdar://problem/63996471

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




More information about the All-commits mailing list