summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGValue.h
Commit message (Collapse)AuthorAgeFilesLines
* Reset the lifetime-managed flag between emission of the agg conditionalJohn McCall2010-11-171-2/+2
| | | | | | branches. Fixes PR8623. llvm-svn: 119408
* After discussion with Doug and John, I am revertingFariborz Jahanian2010-10-221-8/+1
| | | | | | the patch. llvm-svn: 117159
* Patch fixes miscompile with non-trivial copy constructors and Fariborz Jahanian2010-10-221-1/+8
| | | | | | statement expressions, //rdar: //8540501 llvm-svn: 117146
* Experimental TBAA support.Dan Gohman2010-10-141-3/+13
| | | | | | | This enables metadata generation by default, however the TBAA pass in the optimizer is still disabled for now. llvm-svn: 116536
* Removes unused setter.Fariborz Jahanian2010-09-161-3/+0
| | | | llvm-svn: 114085
* Further beautification: this pointer can now be typed.John McCall2010-09-161-5/+5
| | | | llvm-svn: 114061
* Initialize AggValueSlot's flags along all paths, plus minor beautification.John McCall2010-09-161-6/+8
| | | | | | Prospective fix for broken commit in r114045. llvm-svn: 114060
* Patch to move RequiresGCollection bit toFariborz Jahanian2010-09-161-14/+26
| | | | | | AggValueSlot slot. llvm-svn: 114045
* one piece of code is responsible for the lifetime of every aggregateJohn McCall2010-09-151-0/+63
| | | | | | | | | | | | | slot. The easiest way to do that was to bundle up the information we care about for aggregate slots into a new structure which demands that its creators at least consider the question. I could probably be convinced that the ObjC 'needs GC' bit should be rolled into this structure. Implement generalized copy elision. The main obstacle here is that IR-generation must be much more careful about making sure that exactly llvm-svn: 113962
* CGValue: Increase width of allowed alignment. We could switch to log2, but weDaniel Dunbar2010-08-261-1/+1
| | | | | | don't currently need the bits anyway. llvm-svn: 112173
* IRgen/CGValue: Give MakeAddrLValue() an alignment argument, and eliminate ↵Daniel Dunbar2010-08-211-9/+5
| | | | | | old form of MakeAddr(). llvm-svn: 111723
* IRgen: Move remaining LValue::Set... methods to LValue::set... (non-static) ↵Daniel Dunbar2010-08-211-15/+13
| | | | | | methods. llvm-svn: 111722
* IRgen/CGValue: Add getQuals(), so qualifiers can be modified on an LValue.Daniel Dunbar2010-08-211-0/+3
| | | | llvm-svn: 111719
* IRgen/LValue: Add LValue::setNonGC instead of SetObjCNonGC, for consistency ↵Daniel Dunbar2010-08-211-3/+3
| | | | | | with isNonGC(). llvm-svn: 111718
* IRgen: Add an LValue::MakeAddr variant which takes a type and uses that to buildDaniel Dunbar2010-08-211-0/+8
| | | | | | | | | the qualifiers. Also, add CodeGenFunction::MakeAddrLValue() helper function which passes in the ASTContext. llvm-svn: 111714
* IRgen/CGValue: Add alignment to LValue, and use that alignment when ↵Daniel Dunbar2010-08-211-6/+13
| | | | | | generating lvalue load/stores. llvm-svn: 111710
* IRgen/LValue: Rename SetQualifiers() to Initialize().Daniel Dunbar2010-08-211-7/+7
| | | | llvm-svn: 111708
* Adopt objc_assign_threadlocal() for __thread variables of GC types.Fariborz Jahanian2010-07-201-1/+8
| | | | | | Implements radar 8203301. llvm-svn: 108917
* CodeGen: Shrink RValue. 4 words -> 2 words.Benjamin Kramer2010-05-021-30/+25
| | | | llvm-svn: 102863
* IRgen: Move the bit-field access type into CGBitFieldInfo, and change ↵Daniel Dunbar2010-04-081-3/+9
| | | | | | bit-field LValues to just store the base address of object containing the bit-field. llvm-svn: 100745
* IRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.Daniel Dunbar2010-04-061-9/+1
| | | | llvm-svn: 100513
* IRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.Daniel Dunbar2010-04-051-22/+24
| | | | | | | | | - Unfortunately, this requires some horrible code in CGObjCMac which always allocats a CGBitFieldInfo because we don't currently build a proper layout for Objective-C classes. It needs to be cleaned up, but I don't want the bit-field cleanups to be blocked on that. llvm-svn: 100474
* Fix documentation.Mike Stump2009-11-031-1/+1
| | | | llvm-svn: 85901
* Patch fixes a code gen. bug in generation of objc_assign_ivarFariborz Jahanian2009-09-241-0/+5
| | | | | | (objc GC's API). llvm-svn: 82724
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-241-52/+25
| | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705
* Miscellanous fixes in generatation of objc gc's write-barriers.Fariborz Jahanian2009-09-211-5/+5
| | | | llvm-svn: 82472
* Fixed a bug in generation of the new write-barriers when Fariborz Jahanian2009-09-181-2/+8
| | | | | | array syntax is used to derefernce and assign to ivar pointee. llvm-svn: 82183
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-20/+20
| | | | llvm-svn: 81346
* Using "ObjCImplicitSetterGetterRefExpr" instead of ↵Fariborz Jahanian2009-08-201-4/+4
| | | | | | | | "ObjCImplctSetterGetterRefExpr". A field rename and more comments. llvm-svn: 79537
* Renamed ObjCKVCRefExpr to ObjCImplctSetterGetterRefExpr.Fariborz Jahanian2009-08-181-4/+5
| | | | | | | | Removed an unnecessary loop to get to setters incoming argument. Added DoxyGen comments. Still more work to do in this area (WIP). llvm-svn: 79365
* Preserve address space information through member accesses, e.g., Mon P Wang2009-07-221-3/+8
| | | | | | | __attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1; ... = p1->arr[2]; // load from address space 1 llvm-svn: 76717
* Not setting all the fields is confusing...Mike Stump2009-05-281-0/+3
| | | | llvm-svn: 72506
* Add support for volatile RValues.Mike Stump2009-05-231-3/+8
| | | | llvm-svn: 72341
* Reflow some comments.Mike Stump2009-05-161-5/+5
| | | | llvm-svn: 71937
* Provide basic support for generation of objc2's Fariborz Jahanian2009-05-041-1/+10
| | | | | | | objc_assign_global API when assigning to global objective-c object pointer. llvm-svn: 70939
* Handle case of none gc'able objects regardless of theirFariborz Jahanian2009-02-211-2/+12
| | | | | | type. llvm-svn: 65205
* Some code simplification. ir gen for gc'able arrayFariborz Jahanian2009-02-191-5/+6
| | | | | | of objects in objc. llvm-svn: 64992
* fix volatile handling with ExtVectorElementExpr, so that weChris Lattner2009-02-161-2/+6
| | | | | | | | | | | emit two volatile loads for: typedef __attribute__(( ext_vector_type(4) )) float float4; float test(volatile float4 *P) { return P->x+P->y; } llvm-svn: 64683
* Remove tabs.Nate Begeman2008-12-161-3/+3
| | | | llvm-svn: 61097
* Implemented ir-gen for 'implicit' properties using the new AST nodes.Fariborz Jahanian2008-11-221-1/+21
| | | | llvm-svn: 59886
* Fields of ivars of struct types are considered ivarsFariborz Jahanian2008-11-211-2/+2
| | | | | | themselves for gc API generation purposes. llvm-svn: 59828
* Support generation of objc_assign_ivar for ivarFariborz Jahanian2008-11-201-0/+10
| | | | | | write-barriers. llvm-svn: 59748
* More of objective-c's gc code-gen. Treat objective-cFariborz Jahanian2008-11-191-3/+4
| | | | | | objects as __strong when attribute unspecified. llvm-svn: 59654
* Few more changes due to Daniel's feedback.Fariborz Jahanian2008-11-191-2/+2
| | | | llvm-svn: 59645
* Generate strong write barriers for __strong objects.Fariborz Jahanian2008-11-191-10/+17
| | | | | | Also, took care of Daniel's commments. llvm-svn: 59575
* Generate objc_read_weak for __weak objc loads.Fariborz Jahanian2008-11-181-0/+4
| | | | llvm-svn: 59553
* Some basic support toward objective-c's GC code gen.Fariborz Jahanian2008-11-181-2/+13
| | | | llvm-svn: 59543
* Add FIXME about potential problem in how property ref lvalues are handled.Daniel Dunbar2008-10-171-0/+3
| | | | llvm-svn: 57743
* Change CodeGen to emit calls using (RValue,Type) list:Daniel Dunbar2008-09-091-0/+5
| | | | | | | | | | | | | | - Add CodeGenFunction::EmitAnyExprToTemp o Like EmitAnyExpr, but emits aggregates to a temporary location if none is available. Seems like this should be simpler (even aside from using first class aggregates). - Killed CodeGenFunction::EmitCallArg (just append the pair) - Conversion of RValues to actual call arguments is now isolated in CodeGenFunction::EmitCall. llvm-svn: 55970
* Add special "property reference" CodeGen::LValue type for emittingDaniel Dunbar2008-08-291-2/+24
| | | | | | | | Objective-C property references. - This handles property references "more correctly" but setters still don't work. llvm-svn: 55534
OpenPOWER on IntegriCloud