Mike Stump
519202d315
Fix documentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-03 16:11:57 +00:00
Fariborz Jahanian
6c7a1f3647
Patch fixes a code gen. bug in generation of objc_assign_ivar
...
(objc GC's API).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82724 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-24 22:25:38 +00:00
John McCall
0953e767ff
Refactor the representation of qualifiers to bring ExtQualType out of the
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-24 19:53:00 +00:00
Fariborz Jahanian
fd02ed702e
Miscellanous fixes in generatation of objc gc's write-barriers.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82472 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21 18:54:29 +00:00
Fariborz Jahanian
1c1afc4ed3
Fixed a bug in generation of the new write-barriers when
...
array syntax is used to derefernce and assign to ivar pointee.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82183 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18 00:04:00 +00:00
Mike Stump
1eb4433ac4
Remove tabs, and whitespace cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 15:08:12 +00:00
Fariborz Jahanian
09105f52b1
Using "ObjCImplicitSetterGetterRefExpr" instead of "ObjCImplctSetterGetterRefExpr".
...
A field rename and more comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 17:02:02 +00:00
Fariborz Jahanian
154440e6a8
Renamed ObjCKVCRefExpr to ObjCImplctSetterGetterRefExpr.
...
Removed an unnecessary loop to get to setters incoming
argument. Added DoxyGen comments. Still more work
to do in this area (WIP).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79365 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 20:50:23 +00:00
Mon P Wang
c6a38a47bf
Preserve address space information through member accesses, e.g.,
...
__attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1;
... = p1->arr[2]; // load from address space 1
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76717 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 03:08:17 +00:00
Mike Stump
6b73568bc3
Not setting all the fields is confusing...
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72506 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 00:16:27 +00:00
Mike Stump
8b3d93a594
Add support for volatile RValues.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72341 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-23 20:21:36 +00:00
Mike Stump
f5408fe484
Reflow some comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71937 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16 07:57:57 +00:00
Fariborz Jahanian
bf63b87ecf
Provide basic support for generation of objc2's
...
objc_assign_global API when assigning to global
objective-c object pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70939 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-04 23:27:20 +00:00
Fariborz Jahanian
4f676edd08
Handle case of none gc'able objects regardless of their
...
type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65205 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-21 00:30:43 +00:00
Fariborz Jahanian
c1debf3331
Some code simplification. ir gen for gc'able array
...
of objects in objc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64992 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-19 00:48:05 +00:00
Chris Lattner
1bd885efe4
fix volatile handling with ExtVectorElementExpr, so that we
...
emit two volatile loads for:
typedef __attribute__(( ext_vector_type(4) )) float float4;
float test(volatile float4 *P) {
return P->x+P->y;
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64683 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-16 22:25:49 +00:00
Nate Begeman
fea8685bf3
Remove tabs.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61097 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-16 19:57:09 +00:00
Fariborz Jahanian
43f447098d
Implemented ir-gen for 'implicit' properties using the new AST nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59886 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-22 22:30:21 +00:00
Fariborz Jahanian
2ab1968eb4
Fields of ivars of struct types are considered ivars
...
themselves for gc API generation purposes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59828 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-21 18:14:01 +00:00
Fariborz Jahanian
d1cc8040ea
Support generation of objc_assign_ivar for ivar
...
write-barriers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59748 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-20 20:53:20 +00:00
Fariborz Jahanian
0c43f2681b
More of objective-c's gc code-gen. Treat objective-c
...
objects as __strong when attribute unspecified.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59654 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 18:38:10 +00:00
Fariborz Jahanian
dbd32c20c5
Few more changes due to Daniel's feedback.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59645 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 17:34:06 +00:00
Fariborz Jahanian
5862650052
Generate strong write barriers for __strong objects.
...
Also, took care of Daniel's commments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59575 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-19 00:59:10 +00:00
Fariborz Jahanian
6dc2317b59
Generate objc_read_weak for __weak objc loads.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59553 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18 21:45:40 +00:00
Fariborz Jahanian
6d657c4809
Some basic support toward objective-c's GC code gen.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59543 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-18 20:18:11 +00:00
Daniel Dunbar
f951719f81
Add FIXME about potential problem in how property ref lvalues are handled.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-17 23:02:24 +00:00
Daniel Dunbar
46f45b9bec
Change CodeGen to emit calls using (RValue,Type) list:
...
- 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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55970 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-09 01:06:48 +00:00
Daniel Dunbar
85c59edda0
Add special "property reference" CodeGen::LValue type for emitting
...
Objective-C property references.
- This handles property references "more correctly" but setters still
don't work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55534 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-29 08:11:39 +00:00
Daniel Dunbar
2eecaab0fa
Move [LR]Value into CGValue.h
...
- No (intended) functional change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55221 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-23 03:10:25 +00:00