summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.h
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* objc2's ir-gen for nonfragile ivar access.Fariborz Jahanian2009-02-031-1/+6
| | | | llvm-svn: 63578
* More ABI API cleanup.Daniel Dunbar2009-02-021-5/+6
| | | | | | | - Lift CGFunctionInfo creation above ReturnTypeUsesSret and EmitFunction{Epi,Pro}log. llvm-svn: 63553
* ABI handling API changes.Daniel Dunbar2009-02-021-1/+2
| | | | | | | | | | | - Lift CGFunctionInfo creation up to callers of EmitCall. - Move isVariadic bit out of CGFunctionInfo, take as argument to GetFunctionType instead. No functionality change. llvm-svn: 63550
* Pull EmitReturnBlock out of FinishFunction and catch unified returnDaniel Dunbar2009-01-261-0/+4
| | | | | | case correctly. llvm-svn: 63068
* Slight cleanup, and fix for va_arg on architectures where va_list is a Eli Friedman2009-01-201-0/+5
| | | | | | struct. llvm-svn: 62585
* Forgot to commit thisAnders Carlsson2009-01-111-0/+5
| | | | llvm-svn: 62042
* This patch fixes the code gen failures which was a fallout fromFariborz Jahanian2009-01-101-1/+3
| | | | | | | | not merging protocol properties into the classes which use those protocols. With this patch, all my exceutable test pass again. llvm-svn: 62030
* Give "unsupported" error on calls through block pointers instead ofDaniel Dunbar2009-01-091-0/+6
| | | | | | crashes. llvm-svn: 61992
* Change EmitVLASize to take a QualType that must be a variably modified type.Anders Carlsson2008-12-201-3/+4
| | | | | | | | | | | | 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 Carlsson2008-12-201-1/+5
| | | | llvm-svn: 61284
* Code gen. for ivar references; including bitfieldFariborz Jahanian2008-12-151-0/+4
| | | | | | ivars. llvm-svn: 61043
* Store the size of the EH stack inside each BreakContinue struct so we know ↵Anders Carlsson2008-12-131-3/+4
| | | | | | when a break/continue won't cross a try block. llvm-svn: 60998
* Add map of VLA types and their sizesAnders Carlsson2008-12-121-0/+9
| | | | llvm-svn: 60939
* Work in preparation for VLAs. Make sure to restore the stack if necessary ↵Anders Carlsson2008-12-121-0/+5
| | | | | | (Saving the stack isn't implemented right now :) llvm-svn: 60925
* Support for implementation of property in the case whereFariborz Jahanian2008-12-091-2/+5
| | | | | | | the synthesis is in an implementation of s subclass of a super class where the property has been declared. llvm-svn: 60792
* Implemented ir-gen for 'implicit' properties using the new AST nodes.Fariborz Jahanian2008-11-221-1/+4
| | | | llvm-svn: 59886
* New AST node to access "implicit" setter/getter using property dor syntax.Fariborz Jahanian2008-11-221-1/+1
| | | | | | | Issuing diagnostics when assigning to read-only properties. This is work in progress. llvm-svn: 59874
* Added a test case for __weak field decls. Change SetVarDeclObjCAttributeFariborz Jahanian2008-11-201-2/+0
| | | | | | to static function. Added comments. llvm-svn: 59738
* More objc gc stuff. Read/Write barriers for local static/extern,Fariborz Jahanian2008-11-201-1/+2
| | | | | | | diagnostics on use of __weak attribute on fields, Early support for read/write barriers for objc fields. llvm-svn: 59682
* Fix redundant load of bit-fields on assignment (to get the updatedDaniel Dunbar2008-11-191-1/+10
| | | | | | | | | value). - Use extra argument to EmitStoreThroughLValue to provide place to write update bit-field value if caller requires it. - This fixes several FIXMEs. llvm-svn: 59615
* Start implementing support for @synchonized with the darwin ObjC API.Chris Lattner2008-11-151-0/+1
| | | | | | Patch by Fariborz! llvm-svn: 59377
* Add IsFinished arg to EmitBlock.Daniel Dunbar2008-11-131-1/+6
| | | | | | | | | | - Indicates that caller is done with the block and it can be dropped if it has no predecessors. Useful for callers who need to make landing pads but which may not be reached. No functionality change. llvm-svn: 59207
* Comment/indentation fix.Daniel Dunbar2008-11-121-2/+2
| | | | llvm-svn: 59127
* IRgen improvements on unreachable code:Daniel Dunbar2008-11-121-2/+14
| | | | | | | | | | | | | | | | | | | | | | | - Split out "simple" statements which can easily handle IR generation when there is no insert point. These are generally statements which start by emitting a new block or are only containers for other statements. - This fixes a regression in emitting dummy blocks, notably for case statements. - This also fixes spurious emission of a number of debug stoppoint intrinsic instructions. Remove unneeded sw.body block, just clear the insertion point. Lift out CodeGenFunction::EmitStopPoint which calls into the CGDebugInfo class when generating debug info. Normalize definitions of Emit{Break,Continue}Stmt and usage of ErrorUnsupported. llvm-svn: 59118
OpenPOWER on IntegriCloud