A few more tweaks to the blocks AST representation:
- BlockDeclRefExprs always store VarDecls - BDREs no longer store copy expressions - BlockDecls now store a list of captured variables, information about how they're captured, and a copy expression if necessary With that in hand, change IR generation to use the captures data in blocks instead of walking the block independently. Additionally, optimize block layout by emitting fields in descending alignment order, with a heuristic for filling in words when alignment of the end of the block header is insufficient for the most aligned field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125005 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/AST/ASTContext.h 2 additions, 2 deletionsinclude/clang/AST/ASTContext.h
- include/clang/AST/Decl.h 57 additions, 17 deletionsinclude/clang/AST/Decl.h
- include/clang/AST/Expr.h 8 additions, 16 deletionsinclude/clang/AST/Expr.h
- include/clang/Sema/ScopeInfo.h 5 additions, 2 deletionsinclude/clang/Sema/ScopeInfo.h
- lib/AST/ASTContext.cpp 6 additions, 3 deletionslib/AST/ASTContext.cpp
- lib/AST/Decl.cpp 14 additions, 9 deletionslib/AST/Decl.cpp
- lib/AST/Expr.cpp 3 additions, 4 deletionslib/AST/Expr.cpp
- lib/AST/StmtDumper.cpp 39 additions, 13 deletionslib/AST/StmtDumper.cpp
- lib/AST/StmtProfile.cpp 0 additions, 2 deletionslib/AST/StmtProfile.cpp
- lib/CodeGen/CGBlocks.cpp 872 additions, 783 deletionslib/CodeGen/CGBlocks.cpp
- lib/CodeGen/CGBlocks.h 9 additions, 60 deletionslib/CodeGen/CGBlocks.h
- lib/CodeGen/CGDebugInfo.cpp 19 additions, 11 deletionslib/CodeGen/CGDebugInfo.cpp
- lib/CodeGen/CGDebugInfo.h 8 additions, 6 deletionslib/CodeGen/CGDebugInfo.h
- lib/CodeGen/CGDecl.cpp 3 additions, 4 deletionslib/CodeGen/CGDecl.cpp
- lib/CodeGen/CGExpr.cpp 3 additions, 1 deletionlib/CodeGen/CGExpr.cpp
- lib/CodeGen/CGExprScalar.cpp 2 additions, 2 deletionslib/CodeGen/CGExprScalar.cpp
- lib/CodeGen/CGObjCGNU.cpp 2 additions, 2 deletionslib/CodeGen/CGObjCGNU.cpp
- lib/CodeGen/CGObjCMac.cpp 53 additions, 39 deletionslib/CodeGen/CGObjCMac.cpp
- lib/CodeGen/CGObjCRuntime.h 3 additions, 3 deletionslib/CodeGen/CGObjCRuntime.h
- lib/CodeGen/CodeGenFunction.h 64 additions, 26 deletionslib/CodeGen/CodeGenFunction.h
Loading
Please register or sign in to comment