summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBlocks.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Update for LLVM API change.Owen Anderson2009-07-241-12/+12
| | | | llvm-svn: 77012
* Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek2009-07-171-1/+1
| | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193
* Add member template 'Type::getAs<T>', which converts a Type* to a respective T*.Ted Kremenek2009-07-161-1/+1
| | | | | | | | | | | | | | | | | | | | | This method is intended to eventually replace the individual Type::getAsXXXType<> methods. The motivation behind this change is twofold: 1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of them are basically copy-and-paste. 2) By centralizing the implementation of the getAs<Type> logic we can more smoothly move over to Doug Gregor's proposed canonical type smart pointer scheme. Along with this patch: a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>. b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>. llvm-svn: 76098
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-141-50/+53
| | | | llvm-svn: 75705
* Update for LLVM API change.Owen Anderson2009-07-131-2/+2
| | | | llvm-svn: 75446
* Update for LLVM API change.Owen Anderson2009-07-081-13/+8
| | | | llvm-svn: 75028
* Update for LLVM API change.Owen Anderson2009-07-081-4/+7
| | | | llvm-svn: 74986
* As an optimization, we maintain a cache of generatedMike Stump2009-06-051-4/+35
| | | | | | | | | | ___Block_byref_id_object_dispose and ___Block_byref_id_object_copy functions so that we can simply reuse instead of creating a new one. Additionally, add an assert to ensure no one yet tries to align a __block variable beyond the alignment of a pointer as the codegen is incomplete. llvm-svn: 72974
* Reflow some comments.Mike Stump2009-05-161-2/+2
| | | | llvm-svn: 71937
* Fix rdar://6880259 - invalid function name in block call ↵Chris Lattner2009-05-131-32/+7
| | | | | | | | (__NSConcreteGlobalBlock2) by using the appropriate CGM interface instead of directly creating a global. llvm-svn: 71617
* Don't assert when we think we need copy/dispose, but don't need them.Mike Stump2009-05-011-1/+2
| | | | | | Radar 6838889 llvm-svn: 70525
* fix a problem producing debug info with global blocks.Chris Lattner2009-04-231-1/+2
| | | | llvm-svn: 69875
* the logic for computing __func__ and friends is really broken:Chris Lattner2009-04-231-2/+2
| | | | | | | | | the type assigned by sema (and is visible with sizeof(__func__) for example) has nothing to do with what codegen ends up producing. We should eventually add a method on PredefinedExpr to handle this. In the meantime, just set up some framework and add some fixme's. llvm-svn: 69872
* Attributes on block functions were not being set.Daniel Dunbar2009-04-171-0/+2
| | | | | | | - <rdar://problem/6800351> clang not producing correct large struct return code for Blocks llvm-svn: 69337
* Fixup codegen for copy/dispose for block literals. Radar 6791245Mike Stump2009-04-151-4/+10
| | | | llvm-svn: 69232
* Set DebugInfo at the beginning of GenerateBlockFunction().Devang Patel2009-04-151-0/+5
| | | | llvm-svn: 69228
* Audit __private_extern__ handling.Daniel Dunbar2009-04-141-2/+1
| | | | | | | | | | | | | | - Exposed quite a few Sema issues and a CodeGen crash. - See FIXMEs in test case, and in SemaDecl.cpp (PR3983). I'm skeptical that __private_extern__ should actually be a storage class value. I think that __private_extern__ basically amounts to extern A __attribute__((visibility("hidden"))) and would be better off handled (a) as that, or (b) with an extra bit in the VarDecl. llvm-svn: 69020
* Minor refactoring of my last patch.Fariborz Jahanian2009-04-111-2/+2
| | | | llvm-svn: 68870
* Fixes a ir-gen crash for K&R style blocks.Fariborz Jahanian2009-04-111-5/+16
| | | | llvm-svn: 68865
* Fixup codegen for nested blocks that use copy/dispose in the innerMike Stump2009-04-101-52/+60
| | | | | | blocks, so that the outer blocks use it as well. Radar 6762279 llvm-svn: 68811
* Use the new EmitCallArgs function. No indented functionality change.Anders Carlsson2009-04-081-5/+4
| | | | llvm-svn: 68652
* Don't assume that a block always has a FunctionProtoType. Fixes rdar://6768379.Anders Carlsson2009-04-081-4/+6
| | | | llvm-svn: 68583
* Shuffle some call code around. No functionality change.Anders Carlsson2009-04-071-12/+14
| | | | llvm-svn: 68557
* Use the new getFunctionInfo that takes a BlockPointerType parameter, and get ↵Anders Carlsson2009-04-071-23/+8
| | | | | | rid of getBlockFunctionType from CGBlocks.cpp llvm-svn: 68478
* Fix block comparisons. Radar 6732116.Mike Stump2009-04-011-7/+8
| | | | llvm-svn: 68171
* Move where block-related variables are initialized so that block Eli Friedman2009-03-281-0/+10
| | | | | | types don't get generated when blocks aren't used. llvm-svn: 67898
* Remove -f__block as codegen for __block variables should be solid.Mike Stump2009-03-251-22/+0
| | | | llvm-svn: 67697
* Fixup codegen for block literals that bleed copy/dispose informationMike Stump2009-03-251-5/+10
| | | | | | from previous block literals. llvm-svn: 67696
* Fixup codegen for nested block literals so that we generateMike Stump2009-03-211-1/+5
| | | | | | copy_helpers and dispose_helpers as necessary for them. llvm-svn: 67453
* Fix codegen for support for super inside block literal expressions.Mike Stump2009-03-201-2/+18
| | | | llvm-svn: 67406
* Do up codegen for function static data and externs in functions in blockMike Stump2009-03-131-2/+19
| | | | | | literals. llvm-svn: 66984
* Remove FIXME, issue has been resolved.Mike Stump2009-03-131-2/+0
| | | | llvm-svn: 66931
* Fix <rdar://problem/6675489> BlockDecl should not use llvm::smallvector.Steve Naroff2009-03-131-1/+1
| | | | | | Also changed BlockDecl API to be more consistent (wrt FunctionDecl). llvm-svn: 66904
* Fix uninitialized use in GetAddrOfGlobalBlock, reenable assert.Daniel Dunbar2009-03-121-2/+2
| | | | | | - Mike, please verify. llvm-svn: 66762
* If someone could figure out this is necessary, that would be good.Mike Stump2009-03-071-1/+3
| | | | llvm-svn: 66341
* Fix typo, need parens.Mike Stump2009-03-071-2/+2
| | | | llvm-svn: 66337
* Remove last FIXME for block literal codegen that I know about and turnMike Stump2009-03-071-2/+1
| | | | | | | | on all the new code by default. There is still plenty of testing to do and issues I'm sure need resolving. Let me know if you find anything. llvm-svn: 66323
* Remove some FIXMEs for block literals that should be close to working.Mike Stump2009-03-071-8/+3
| | | | llvm-svn: 66322
* codegen support for dispose helpers for block literals.Mike Stump2009-03-071-1/+23
| | | | llvm-svn: 66320
* Codegen support for copy helpers for block literals.Mike Stump2009-03-071-18/+86
| | | | llvm-svn: 66319
* Pass the type of the block literal around to make required temporal ordering ↵Mike Stump2009-03-061-12/+17
| | | | | | of code clearer. llvm-svn: 66284
* Complete __Block_byref_id_object_copy cogegen for block literals.Mike Stump2009-03-061-5/+47
| | | | llvm-svn: 66257
* Finish off __Block_byref_id_object_dispose codegen for block literals.Mike Stump2009-03-061-9/+22
| | | | llvm-svn: 66247
* Remove extra arg.Mike Stump2009-03-061-2/+2
| | | | llvm-svn: 66243
* More codegen support for the copy/dispose helpers for block literals.Mike Stump2009-03-061-10/+88
| | | | llvm-svn: 66241
* Framework for codegen for copy/dispose helpers.Mike Stump2009-03-061-14/+82
| | | | llvm-svn: 66231
* prep work for copy/destroy helpers for block literals.Mike Stump2009-03-051-40/+56
| | | | llvm-svn: 66159
* Add codegen support for __block variables to call _Block_object_dispose as ↵Mike Stump2009-03-051-24/+30
| | | | | | necessary. llvm-svn: 66117
* Fixup __block codegen in nested block literals.Mike Stump2009-03-041-15/+28
| | | | llvm-svn: 66091
* Move some of the CodeGenFunction blocks code up and out. NoMike Stump2009-03-041-2/+2
| | | | | | functionality change. llvm-svn: 66048
OpenPOWER on IntegriCloud