summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBlocks.h
Commit message (Collapse)AuthorAgeFilesLines
* Fixed a block regression caused by trying to useFariborz Jahanian2010-06-071-3/+0
| | | | | | | | an existing ir for load of a bock variable. This cannot be done across basic blocks. Fixes radar 8064140. llvm-svn: 105549
* For C++ copied in objects, use copy constructors inFariborz Jahanian2010-06-041-0/+3
| | | | | | | | setting up block's descriptor. This is on going work to support c++ specific issues in setting up blocks various APIs. llvm-svn: 105469
* Allocate space in a block record for implicit references to the Objective CJohn McCall2010-05-211-24/+0
| | | | | | | | | | 'self' variable arising from uses of the 'super' keyword. Also reorganize some code so that BlockInfo (now CGBlockInfo) can be opaque outside of CGBlocks.cpp. Fixes rdar://problem/8010633. llvm-svn: 104312
* Support implicitly closing on 'this' in a block. Fixed PR7165.John McCall2010-05-201-8/+24
| | | | | | (the codegen works here, too, but that's annoying to test without execution) llvm-svn: 104202
* Miscellaneous codegen cleanups. Mostly, don't create new basic blocksJohn McCall2010-04-211-1/+2
| | | | | | | just to save the current insertion state! This change significantly simplifies the IR CFG in exceptions code. llvm-svn: 101996
* Minor include pruning.Benjamin Kramer2010-03-311-1/+0
| | | | llvm-svn: 100007
* add support for a 1<<29 bit in the block flags field to mark blocks using ↵Blaine Garst2010-03-051-1/+3
| | | | | | alternate struct return ABI llvm-svn: 97775
* Unconditionally support block introspection data in a new field at the endBlaine Garst2010-02-231-1/+0
| | | | | | | | | | | | | | | of the block descriptor field. This field is the ObjC style @encode signature of the implementation function, and was to this point conditionally provided in the block literal data structure. That provisional support is removed. Additionally, eliminate unused enumerations for the block literal flags field. The first shipping ABI unconditionally set (1<<29) but this bit is unused by the runtime, so the second ABI will unconditionally have (1<<30) set so that the runtime can in fact distinguish whether the additional data is present or not. llvm-svn: 96989
* remove unused function & enumerationsBlaine Garst2010-02-191-5/+2
| | | | llvm-svn: 96635
* Use CharUnits for alignments in character units.Ken Dyck2010-01-261-2/+3
| | | | llvm-svn: 94571
* Roll out ASTContext::getTypeSizeInChars(), replacing instances ofKen Dyck2010-01-111-3/+4
| | | | | | | | | | "ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits ones as appropriate. Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType, fromQuantity(), and getQuantity() for clarity. llvm-svn: 93153
* Added block type introspection support.David Chisnall2009-11-171-1/+2
| | | | | | As per Fariborz's suggestion, committed now but can be reverted later if the used flag is problematic for Apple. llvm-svn: 89134
* Refactor.Mike Stump2009-10-211-10/+4
| | | | llvm-svn: 84769
* Prep work to always preallocate BlockDeclRefExprs so that we canMike Stump2009-10-211-5/+1
| | | | | | | generate the debug information for the first parameter to the block invoke functions. WIP. llvm-svn: 84737
* Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer2009-10-131-2/+1
| | | | llvm-svn: 83964
* Improve debug info generation for __block variables.Mike Stump2009-09-221-9/+11
| | | | llvm-svn: 82508
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-5/+5
| | | | llvm-svn: 81346
* Update for LLVM API change.Owen Anderson2009-08-131-1/+2
| | | | llvm-svn: 78946
* LLVMContext is a class now.Benjamin Kramer2009-08-111-1/+1
| | | | llvm-svn: 78691
* Update for LLVM API change.Owen Anderson2009-08-051-1/+1
| | | | llvm-svn: 78259
* Remove ASTContext::isObjCObjectPointerType().Steve Naroff2009-07-161-1/+1
| | | | | | Convert all clients to use the new predicate on Type. llvm-svn: 76076
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-141-1/+7
| | | | llvm-svn: 75705
* As an optimization, we maintain a cache of generatedMike Stump2009-06-051-3/+9
| | | | | | | | | | ___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
* Skip the asm prefix when storing the name in block info.Daniel Dunbar2009-05-141-2/+6
| | | | | | | | | | | - Otherwise we emit internal names with embedded '\01' characters, which confuses some tools. - Ideally all the code which wants to get a "display name" for the given function should follow one code path, but this should be a monotonic improvement for now. llvm-svn: 71774
* Fixup copy/dispose helpers for Objective-C. Radar 6756504Mike Stump2009-04-101-0/+2
| | | | llvm-svn: 68837
* Fixup codegen for nested blocks that use copy/dispose in the innerMike Stump2009-04-101-4/+4
| | | | | | blocks, so that the outer blocks use it as well. Radar 6762279 llvm-svn: 68811
* Codegen support for copy helpers for block literals.Mike Stump2009-03-071-9/+37
| | | | llvm-svn: 66319
* Pass the type of the block literal around to make required temporal ordering ↵Mike Stump2009-03-061-4/+4
| | | | | | of code clearer. llvm-svn: 66284
* Complete __Block_byref_id_object_copy cogegen for block literals.Mike Stump2009-03-061-4/+6
| | | | llvm-svn: 66257
* Finish off __Block_byref_id_object_dispose codegen for block literals.Mike Stump2009-03-061-3/+3
| | | | llvm-svn: 66247
* Remove extra arg.Mike Stump2009-03-061-1/+1
| | | | llvm-svn: 66243
* More codegen support for the copy/dispose helpers for block literals.Mike Stump2009-03-061-2/+8
| | | | llvm-svn: 66241
* Framework for codegen for copy/dispose helpers.Mike Stump2009-03-061-4/+8
| | | | llvm-svn: 66231
* prep work for copy/destroy helpers for block literals.Mike Stump2009-03-051-0/+9
| | | | llvm-svn: 66159
* Add codegen support for __block variables to call _Block_object_dispose as ↵Mike Stump2009-03-051-3/+15
| | | | | | necessary. llvm-svn: 66117
* Move more blocks CodeGenFunction code up and out.Mike Stump2009-03-041-0/+23
| | | | llvm-svn: 66049
* Move some of the CodeGenFunction blocks code up and out. NoMike Stump2009-03-041-0/+8
| | | | | | functionality change. llvm-svn: 66048
* Move more of the blocks code up and out.Mike Stump2009-03-041-3/+11
| | | | llvm-svn: 66046
* Move more of blocks codegen out of CodeGenModule and into theMike Stump2009-03-041-0/+63
| | | | | | | | | BlockModule. No functionality change. This should help people that don't want to know anything about blocks not be confused by the overloaded use of the term block or nor want to see all the blocks goop. llvm-svn: 66042
* Start the migration of more of the blocks code out of sight for mostMike Stump2009-03-041-0/+54
people. De-duplicates BLOCK_NEEDS_FREE and friends. llvm-svn: 66035
OpenPOWER on IntegriCloud