CodeGenFunction.h (193326) | CodeGenFunction.h (193401) |
---|---|
1//===-- CodeGenFunction.h - Per-Function state for LLVM CodeGen -*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 225 unchanged lines hidden (view full) --- 234 235 /// BlockScopes - Map of which "cleanup scope" scope basic blocks have. 236 BlockScopeMap BlockScopes; 237 238 /// CXXThisDecl - When parsing an C++ function, this will hold the implicit 239 /// 'this' declaration. 240 ImplicitParamDecl *CXXThisDecl; 241 | 1//===-- CodeGenFunction.h - Per-Function state for LLVM CodeGen -*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 225 unchanged lines hidden (view full) --- 234 235 /// BlockScopes - Map of which "cleanup scope" scope basic blocks have. 236 BlockScopeMap BlockScopes; 237 238 /// CXXThisDecl - When parsing an C++ function, this will hold the implicit 239 /// 'this' declaration. 240 ImplicitParamDecl *CXXThisDecl; 241 |
242 llvm::SmallVector<const CXXTemporary*, 4> LiveTemporaries; | 242 /// CXXLiveTemporaryInfo - Holds information about a live C++ temporary. 243 struct CXXLiveTemporaryInfo { 244 /// Temporary - The live temporary. 245 const CXXTemporary *Temporary; 246 247 /// ThisPtr - The pointer to the temporary. 248 llvm::Value *ThisPtr; 249 250 /// DtorBlock - The destructor block. 251 llvm::BasicBlock *DtorBlock; 252 253 /// CondPtr - If this is a conditional temporary, this is the pointer to 254 /// the condition variable that states whether the destructor should be 255 /// called or not. 256 llvm::Value *CondPtr; 257 258 CXXLiveTemporaryInfo(const CXXTemporary *temporary, 259 llvm::Value *thisptr, llvm::BasicBlock *dtorblock, 260 llvm::Value *condptr) 261 : Temporary(temporary), ThisPtr(thisptr), DtorBlock(dtorblock), 262 CondPtr(condptr) { } 263 }; |
243 | 264 |
265 llvm::SmallVector<CXXLiveTemporaryInfo, 4> LiveTemporaries; 266 |
|
244public: 245 CodeGenFunction(CodeGenModule &cgm); 246 247 ASTContext &getContext() const; 248 CGDebugInfo *getDebugInfo() { return DebugInfo; } 249 250 llvm::BasicBlock *getInvokeDest() { return InvokeDest; } 251 void setInvokeDest(llvm::BasicBlock *B) { InvokeDest = B; } --- 226 unchanged lines hidden (view full) --- 478 llvm::Value *This, 479 CallExpr::const_arg_iterator ArgBeg, 480 CallExpr::const_arg_iterator ArgEnd); 481 482 void EmitCXXDestructorCall(const CXXDestructorDecl *D, CXXDtorType Type, 483 llvm::Value *This); 484 485 void PushCXXTemporary(const CXXTemporary *Temporary, llvm::Value *Ptr); | 267public: 268 CodeGenFunction(CodeGenModule &cgm); 269 270 ASTContext &getContext() const; 271 CGDebugInfo *getDebugInfo() { return DebugInfo; } 272 273 llvm::BasicBlock *getInvokeDest() { return InvokeDest; } 274 void setInvokeDest(llvm::BasicBlock *B) { InvokeDest = B; } --- 226 unchanged lines hidden (view full) --- 501 llvm::Value *This, 502 CallExpr::const_arg_iterator ArgBeg, 503 CallExpr::const_arg_iterator ArgEnd); 504 505 void EmitCXXDestructorCall(const CXXDestructorDecl *D, CXXDtorType Type, 506 llvm::Value *This); 507 508 void PushCXXTemporary(const CXXTemporary *Temporary, llvm::Value *Ptr); |
509 void PopCXXTemporary(); |
|
486 487 llvm::Value *EmitCXXNewExpr(const CXXNewExpr *E); 488 489 //===--------------------------------------------------------------------===// 490 // Declaration Emission 491 //===--------------------------------------------------------------------===// 492 493 void EmitDecl(const Decl &D); --- 407 unchanged lines hidden --- | 510 511 llvm::Value *EmitCXXNewExpr(const CXXNewExpr *E); 512 513 //===--------------------------------------------------------------------===// 514 // Declaration Emission 515 //===--------------------------------------------------------------------===// 516 517 void EmitDecl(const Decl &D); --- 407 unchanged lines hidden --- |