summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.h
Commit message (Collapse)AuthorAgeFilesLines
* Do some blocks cleanup and simplification. Fix a crash, and add a test case.Anders Carlsson2009-03-011-0/+8
| | | | llvm-svn: 65746
* improve compatibility with the VC++'08 C++ compiler. Patch byChris Lattner2009-02-281-1/+1
| | | | | | Niklas Larsson! llvm-svn: 65706
* First cut CodeGen support for __block variables.Mike Stump2009-02-281-29/+12
| | | | llvm-svn: 65688
* Create a new TypeNodes.def file that enumerates all of the types,Douglas Gregor2009-02-261-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 Dunbar2009-02-261-4/+0
| | | | | | | | | - For types whose native representation is a pointer. - Use to replace ExprConstant.cpp:HasPointerEvalType, CodeGenFunction::isObjCPointerType. llvm-svn: 65569
* CodeGen support for copied BlockDeclRefExprs.Mike Stump2009-02-251-12/+32
| | | | llvm-svn: 65487
* Fold GeneraticStaticBlockVarDecl into callers.Daniel Dunbar2009-02-251-8/+0
| | | | | | - No functionality change. llvm-svn: 65470
* Pull COdeGenFunction::CreateStaticBlockVarDecl (just for creating theDaniel Dunbar2009-02-251-9/+17
| | | | | | | | global variable) out of GenerateStaticBlockVarDecl. - No intended functionality change. - Prep for some mild cleanups and PR3662. llvm-svn: 65466
* first wave of fixes for @encode sema support. This is part of PR3648.Chris Lattner2009-02-241-0/+1
| | | | | | | The big difference here is that (like string literal) @encode has array type, not pointer type. llvm-svn: 65391
* Prevent accidental copying of CodeGenFunction and CodeGenModule.Anders Carlsson2009-02-241-0/+2
| | | | llvm-svn: 65372
* Add low level support for generating invoke instead of calls.Daniel Dunbar2009-02-231-0/+11
| | | | | | - No functionality change. llvm-svn: 65325
* Copy some clenaups from Eli to code that I copied. :-)Mike Stump2009-02-221-6/+1
| | | | llvm-svn: 65286
* Cleanp code with some recent suggestions.Mike Stump2009-02-221-5/+10
| | | | llvm-svn: 65285
* Add CodeGen support for the helper for BlockDeclRefExprs. The easierMike Stump2009-02-211-4/+36
| | | | | | stuff is mostly done. Move BlockHasCopyDispose up. llvm-svn: 65242
* Set call attribute for direct calls (i.e. noreturn).Daniel Dunbar2009-02-201-5/+8
| | | | | | - Remove an unused variant of EmitCallExpr overload. llvm-svn: 65130
* Deox and Capitolize.Mike Stump2009-02-201-3/+3
| | | | llvm-svn: 65093
* Fixup spacing a little.Mike Stump2009-02-171-6/+6
| | | | llvm-svn: 64768
* Support IRgen of sqrt -> llvm.sqrt, pow -> llvm.pow.Daniel Dunbar2009-02-161-1/+2
| | | | | | | | | | | | | | | | - Define pow[lf]?, sqrt[lf]? as builtins. - Add -fmath-errno option which binds to LangOptions.MathErrno - Add new builtin flag Builtin::Context::isConstWithoutErrno for functions which can be marked as const if errno isn't respected for math functions. Sema automatically marks these functions as const when they are defined, if MathErrno=0. - IRgen uses const attribute on sqrt and pow library functions to decide if it can use the llvm intrinsic. llvm-svn: 64689
* Use getNameAsCString instead of getNameAsString and reflow the type.Mike Stump2009-02-141-3/+3
| | | | | | Thanks Anders. llvm-svn: 64571
* Generate the helper function for blocks. Now basic codegen isMike Stump2009-02-141-5/+8
| | | | | | starting to work for blocks. llvm-svn: 64570
* Condense all the blocks code into CGBlocks.cpp.Mike Stump2009-02-131-0/+3
| | | | llvm-svn: 64457
* Add CodeGen support for the nodebug attribute.Anders Carlsson2009-02-131-0/+4
| | | | llvm-svn: 64445
* Add a very basic implemenation of global blocks. This needs to be cleaned up.Anders Carlsson2009-02-121-0/+12
| | | | llvm-svn: 64387
* Add support for generating block call expressions.Anders Carlsson2009-02-121-0/+2
| | | | llvm-svn: 64346
* Support IRgen of va_arg of structure as l-value.Daniel Dunbar2009-02-111-1/+3
| | | | llvm-svn: 64325
* Remove the last remnants of the Obj-C EH stack code.Anders Carlsson2009-02-101-76/+2
| | | | llvm-svn: 64205
* Start removing the old Obj-C EH stack now that the cleanup stack is used ↵Anders Carlsson2009-02-101-28/+3
| | | | | | instead. llvm-svn: 64203
* Add util Emit{LoadOf,StoreTo}Scalar methods to encapsulate conversionDaniel Dunbar2009-02-101-0/+12
| | | | | | | from LLVM memory type to/from LLVM temporary type. - No intended functionality change. llvm-svn: 64191
* Add DidCallStackSave variable to CodeGenFunction.Anders Carlsson2009-02-091-0/+4
| | | | llvm-svn: 64156
* Add some more documentation. Also reflowed comments to 80 col.Mike Stump2009-02-081-226/+214
| | | | llvm-svn: 64105
* Add a simplified EmitJumpThroughFinally and use it in CGObjC in preparation ↵Anders Carlsson2009-02-081-2/+3
| | | | | | of making it use the cleanup stack. llvm-svn: 64098
* Wire up break and continue processing to the new stack depth adjuster.Mike Stump2009-02-081-3/+19
| | | | | | | | If people could beat on it and let me know if there are any new semantics required by newer language standards or DRs or any little details I goofed on, I'd be happy to fix any issues found. llvm-svn: 64079
* More cleanup stack work, PopCleanupBlock now returns a struct with the ↵Anders Carlsson2009-02-081-12/+24
| | | | | | switch block and end block. llvm-svn: 64072
* Split some functions upAnders Carlsson2009-02-081-3/+12
| | | | llvm-svn: 64069
* CleanupScope needs to push the cleanup block in its destructorAnders Carlsson2009-02-081-6/+8
| | | | llvm-svn: 64068
* More cleanup stack work.Anders Carlsson2009-02-081-0/+11
| | | | llvm-svn: 64059
* When emitting blocks, keep track of which cleanup scope they have. Minor ↵Anders Carlsson2009-02-081-0/+11
| | | | | | fixes and cleanup. llvm-svn: 64053
* Add support for emitting cleanup blocks. Make EmitCompoundStatement emit ↵Anders Carlsson2009-02-071-0/+7
| | | | | | cleanup blocks if necessary llvm-svn: 64051
* Add a simple RAII object, to be used for pushing a cleanup entry and make ↵Anders Carlsson2009-02-071-0/+19
| | | | | | the insertion point be the cleanup block. llvm-svn: 64048
* Ensure we track all the stack depths for all break and continue pointsMike Stump2009-02-071-4/+11
| | | | | | | correctly. This should lay the ground work to throw the big switch and start code gening break and continue in the presense of vlas. llvm-svn: 64046
* Add plumbing for the cleanup stack.Anders Carlsson2009-02-071-0/+22
| | | | llvm-svn: 64043
* Split the exception object out into its own stack.Anders Carlsson2009-02-071-5/+5
| | | | llvm-svn: 64032
* Simplify the Objective-C exception handling.Anders Carlsson2009-02-071-7/+2
| | | | llvm-svn: 64031
* Arrange to have the correct StackDepth for while statements.Mike Stump2009-02-071-1/+4
| | | | llvm-svn: 64021
* Fixup goto codegen in and around VLAs.Mike Stump2009-02-071-5/+32
| | | | llvm-svn: 64014
* Pull CodeGenFunction::GetUndefRValue() out of EmitUnsupportedRValue.Daniel Dunbar2009-02-051-0/+3
| | | | llvm-svn: 63845
* Add CodeGenFunction::ConvertTypeForMem forwarding function.Daniel Dunbar2009-02-031-0/+1
| | | | llvm-svn: 63678
* ir-gen for nonfragile ivar bitfield access (objc2 nonfragile abi).Fariborz Jahanian2009-02-031-1/+1
| | | | llvm-svn: 63644
* Targets that don't have stack use global address space for parameters.Sanjiv Gupta2009-02-031-3/+5
| | | | | | | Specify external linkage for such globals so that llvm optimizer do not assume there values initialized as zero. llvm-svn: 63636
* Fixed the typo in comment.Sanjiv Gupta2009-02-031-1/+1
| | | | llvm-svn: 63634
OpenPOWER on IntegriCloud