Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move where block-related variables are initialized so that block | Eli Friedman | 2009-03-28 | 1 | -10/+0 |
| | | | | | | types don't get generated when blocks aren't used. llvm-svn: 67898 | ||||
* | fix CreateTempAlloca to not set a name on the alloca for temporaries | Chris Lattner | 2009-03-22 | 1 | -2/+4 |
| | | | | | | | | | in release-assert builds. For automatic variables, explicitly set a name with setName that does not make a temporary std::string. This speeds up -emit-llvm-only -disable-free on PR3810 by 4.6% llvm-svn: 67459 | ||||
* | Initialize the cleanup.dst variable if necessary. Fixes PR3789. | Anders Carlsson | 2009-03-17 | 1 | -3/+8 |
| | | | | llvm-svn: 67075 | ||||
* | Codegen support for copy helpers for block literals. | Mike Stump | 2009-03-07 | 1 | -1/+0 |
| | | | | llvm-svn: 66319 | ||||
* | Framework for codegen for copy/dispose helpers. | Mike Stump | 2009-03-06 | 1 | -1/+2 |
| | | | | llvm-svn: 66231 | ||||
* | Add codegen support for __block variables to call _Block_object_dispose as ↵ | Mike Stump | 2009-03-05 | 1 | -1/+1 |
| | | | | | | necessary. llvm-svn: 66117 | ||||
* | Move some of the CodeGenFunction blocks code up and out. No | Mike Stump | 2009-03-04 | 1 | -2/+2 |
| | | | | | | functionality change. llvm-svn: 66048 | ||||
* | Create a new TypeNodes.def file that enumerates all of the types, | Douglas Gregor | 2009-02-26 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... llvm-svn: 65591 | ||||
* | Add Type::hasPointerRepresentation predicate. | Daniel Dunbar | 2009-02-26 | 1 | -8/+2 |
| | | | | | | | | | - For types whose native representation is a pointer. - Use to replace ExprConstant.cpp:HasPointerEvalType, CodeGenFunction::isObjCPointerType. llvm-svn: 65569 | ||||
* | Drop uses of isPointerLikeType. | Daniel Dunbar | 2009-02-26 | 1 | -2/+2 |
| | | | | | | - No functionality change. llvm-svn: 65560 | ||||
* | CodeGen support for copied BlockDeclRefExprs. | Mike Stump | 2009-02-25 | 1 | -0/+1 |
| | | | | llvm-svn: 65487 | ||||
* | Pull COdeGenFunction::CreateStaticBlockVarDecl (just for creating the | Daniel Dunbar | 2009-02-25 | 1 | -6/+7 |
| | | | | | | | | global variable) out of GenerateStaticBlockVarDecl. - No intended functionality change. - Prep for some mild cleanups and PR3662. llvm-svn: 65466 | ||||
* | Add low level support for generating invoke instead of calls. | Daniel Dunbar | 2009-02-23 | 1 | -1/+1 |
| | | | | | | - No functionality change. llvm-svn: 65325 | ||||
* | Add CodeGen support for the helper for BlockDeclRefExprs. The easier | Mike Stump | 2009-02-21 | 1 | -3/+14 |
| | | | | | | stuff is mostly done. Move BlockHasCopyDispose up. llvm-svn: 65242 | ||||
* | Address Chris's comments regarding C++ name mangling. | Douglas Gregor | 2009-02-18 | 1 | -2/+1 |
| | | | | llvm-svn: 64984 | ||||
* | Add CodeGen support for the nodebug attribute. | Anders Carlsson | 2009-02-13 | 1 | -4/+8 |
| | | | | llvm-svn: 64445 | ||||
* | Add basic support for C++ name mangling according to the Itanium C++ | Douglas Gregor | 2009-02-13 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | ABI to the CodeGen library. Since C++ code-generation is so incomplete, we can't exercise much of this mangling code. However, a few smoke tests show that it's doing the same thing as GCC. When C++ codegen matures, we'll extend the ABI tester to verify name-mangling as well, and complete the implementation here. At this point, the major client of name mangling is in the uses of the new "overloadable" attribute in C, which allows overloading. Any "overloadable" function in C (or in an extern "C" block in C++) will be mangled the same way that the corresponding C++ function would be mangled. llvm-svn: 64413 | ||||
* | Pull CodeGenFunction::EmitVAArg into target specific ABIInfo classes. | Daniel Dunbar | 2009-02-10 | 1 | -35/+0 |
| | | | | llvm-svn: 64235 | ||||
* | Remove the last remnants of the Obj-C EH stack code. | Anders Carlsson | 2009-02-10 | 1 | -1/+1 |
| | | | | llvm-svn: 64205 | ||||
* | Add DidCallStackSave variable to CodeGenFunction. | Anders Carlsson | 2009-02-09 | 1 | -0/+1 |
| | | | | llvm-svn: 64156 | ||||
* | Reuse case destinations. | Anders Carlsson | 2009-02-08 | 1 | -8/+27 |
| | | | | llvm-svn: 64100 | ||||
* | Always check if we can remove branch fixups, even if the cleanup stack is empty. | Anders Carlsson | 2009-02-08 | 1 | -17/+15 |
| | | | | llvm-svn: 64099 | ||||
* | Misc fixes to the cleanup stack code. | Anders Carlsson | 2009-02-08 | 1 | -1/+10 |
| | | | | llvm-svn: 64096 | ||||
* | More cleanup stack work, PopCleanupBlock now returns a struct with the ↵ | Anders Carlsson | 2009-02-08 | 1 | -28/+32 |
| | | | | | | switch block and end block. llvm-svn: 64072 | ||||
* | Split some functions up | Anders Carlsson | 2009-02-08 | 1 | -22/+38 |
| | | | | llvm-svn: 64069 | ||||
* | CleanupScope needs to push the cleanup block in its destructor | Anders Carlsson | 2009-02-08 | 1 | -5/+1 |
| | | | | llvm-svn: 64068 | ||||
* | Implement support for branch fixups. | Anders Carlsson | 2009-02-08 | 1 | -1/+71 |
| | | | | llvm-svn: 64064 | ||||
* | More cleanup stack work. | Anders Carlsson | 2009-02-08 | 1 | -0/+41 |
| | | | | llvm-svn: 64059 | ||||
* | When emitting blocks, keep track of which cleanup scope they have. Minor ↵ | Anders Carlsson | 2009-02-08 | 1 | -1/+19 |
| | | | | | | fixes and cleanup. llvm-svn: 64053 | ||||
* | Add support for emitting cleanup blocks. Make EmitCompoundStatement emit ↵ | Anders Carlsson | 2009-02-07 | 1 | -0/+21 |
| | | | | | | cleanup blocks if necessary llvm-svn: 64051 | ||||
* | Add plumbing for the cleanup stack. | Anders Carlsson | 2009-02-07 | 1 | -0/+9 |
| | | | | llvm-svn: 64043 | ||||
* | Fixup goto codegen in and around VLAs. | Mike Stump | 2009-02-07 | 1 | -1/+1 |
| | | | | llvm-svn: 64014 | ||||
* | Follow Eli's advice and store the VLA size with the native size_t type. ↵ | Anders Carlsson | 2009-02-05 | 1 | -5/+6 |
| | | | | | | Fixes PR3491. llvm-svn: 63879 | ||||
* | Add CodeGenFunction::ConvertTypeForMem forwarding function. | Daniel Dunbar | 2009-02-03 | 1 | -0/+4 |
| | | | | llvm-svn: 63678 | ||||
* | Thread CGFunctionInfo construction through CodeGenTypes. | Daniel Dunbar | 2009-02-02 | 1 | -1/+1 |
| | | | | | | - Inefficient & leaks memory currently, will be cleaned up subsequently. llvm-svn: 63567 | ||||
* | More ABI API cleanup. | Daniel Dunbar | 2009-02-02 | 1 | -2/+4 |
| | | | | | | | - Lift CGFunctionInfo creation above ReturnTypeUsesSret and EmitFunction{Epi,Pro}log. llvm-svn: 63553 | ||||
* | Pull EmitReturnBlock out of FinishFunction and catch unified return | Daniel Dunbar | 2009-01-26 | 1 | -7/+41 |
| | | | | | | case correctly. llvm-svn: 63068 | ||||
* | Skip emission of final return block if possible (e.g., functions with | Daniel Dunbar | 2009-01-26 | 1 | -3/+7 |
| | | | | | | a unified return). llvm-svn: 63038 | ||||
* | Slight cleanup, and fix for va_arg on architectures where va_list is a | Eli Friedman | 2009-01-20 | 1 | -0/+7 |
| | | | | | | struct. llvm-svn: 62585 | ||||
* | Block pointer types are not aggregate types. | Daniel Dunbar | 2009-01-09 | 1 | -1/+4 |
| | | | | llvm-svn: 61973 | ||||
* | Handle typedefs to VLAs (Emit the size expr when we encounter the typedef | Anders Carlsson | 2008-12-20 | 1 | -15/+15 |
| | | | | llvm-svn: 61290 | ||||
* | Make sure to generate code for arguments that have a variably modified type. | Anders Carlsson | 2008-12-20 | 1 | -0/+10 |
| | | | | llvm-svn: 61288 | ||||
* | Change EmitVLASize to take a QualType that must be a variably modified type. | Anders Carlsson | 2008-12-20 | 1 | -21/+32 |
| | | | | | | | | | | | | Emit the size even if the declared type is a variably modified type. This lets us handle void f(int n) { int (*a)[n]; printf("size: %d\n", sizeof(*a)); } llvm-svn: 61285 | ||||
* | Split up emitting of VLA sizes and getting the size of a VLA. | Anders Carlsson | 2008-12-20 | 1 | -17/+25 |
| | | | | llvm-svn: 61284 | ||||
* | Add map of VLA types and their sizes | Anders Carlsson | 2008-12-12 | 1 | -0/+27 |
| | | | | llvm-svn: 60939 | ||||
* | Change more code over to using the new Expr::Evaluate | Anders Carlsson | 2008-12-01 | 1 | -6/+4 |
| | | | | llvm-svn: 60324 | ||||
* | Rename NamedDecl::getIdentifierName() to ::getNameAsCString() and make it | Chris Lattner | 2008-11-24 | 1 | -1/+2 |
| | | | | | | | | | assert if the name is not an identifier. Update callers to do the right thing and avoid this method in unsafe cases. This also fixes an objc warning that was missing a space, and migrates a couple more to taking IdentifierInfo and QualTypes instead of std::strings. llvm-svn: 59936 | ||||
* | An expression is not foldable if it can't be fully evaluated. Fixes PR3060 | Anders Carlsson | 2008-11-22 | 1 | -2/+4 |
| | | | | llvm-svn: 59887 | ||||
* | Introduction the DeclarationName class, as a single, general method of | Douglas Gregor | 2008-11-17 | 1 | -1/+1 |
| | | | | | | | | representing the names of declarations in the C family of languages. DeclarationName is used in NamedDecl to store the name of the declaration (naturally), and ObjCMethodDecl is now a NamedDecl. llvm-svn: 59441 | ||||
* | rename Expr::tryEvaluate to Expr::Evaluate. | Chris Lattner | 2008-11-16 | 1 | -1/+1 |
| | | | | llvm-svn: 59426 |