Daniel Dunbar
0512647362
Force triple in test.
...
llvm-svn: 82519
2009-09-22 03:50:39 +00:00
Daniel Dunbar
a25a9dff0d
Add test case for PR4894 (it was fixed in LLVM).
...
llvm-svn: 82510
2009-09-22 02:18:40 +00:00
Fariborz Jahanian
71848a3ff1
Removed -fobjc-newgc-api option. clang now conforms to
...
gcc-style write-barrier api only.
llvm-svn: 82493
2009-09-21 23:03:37 +00:00
Fariborz Jahanian
a74039426d
-fobjc-newgc-api is now the default.
...
llvm-svn: 82478
2009-09-21 20:17:37 +00:00
Fariborz Jahanian
38c3ae9bc4
Miscellanous fixes in generatation of objc gc's write-barriers.
...
llvm-svn: 82472
2009-09-21 18:54:29 +00:00
Daniel Dunbar
23c1ae7fae
Force a triple.
...
llvm-svn: 82216
2009-09-18 08:46:07 +00:00
Fariborz Jahanian
2e32ddc7ba
Fixed a bug in generation of the new write-barriers when
...
array syntax is used to derefernce and assign to ivar pointee.
llvm-svn: 82183
2009-09-18 00:04:00 +00:00
Daniel Dunbar
51418c3b90
Force triple for tests using __strong.
...
llvm-svn: 82133
2009-09-17 07:21:40 +00:00
Daniel Dunbar
df0e62d0a1
IRgen/ObjC: Correctly construct the function info for variadic message sends.
...
This fixes some bad -O0 codegen and the unnecessary clearing of al on entry to objc_msgSend for most message sends.
<rdar://problem/7102824> [irgen] unnecessary xorb on calls to objc_msgSend on x86_64
llvm-svn: 82118
2009-09-17 04:01:40 +00:00
Daniel Dunbar
db7ec04fed
Force triple, although probably the real fix is to tie __strong to -fobjc-gc.
...
llvm-svn: 82101
2009-09-17 00:28:00 +00:00
Fariborz Jahanian
1ff8299c67
Removed useless stuff from the test.
...
llvm-svn: 82095
2009-09-16 23:52:53 +00:00
Fariborz Jahanian
0bdc001b6e
More test for objc gc's mixed write-barriers.
...
llvm-svn: 82094
2009-09-16 23:49:04 +00:00
Fariborz Jahanian
e29f04859b
Additional tests for write-bariers.
...
llvm-svn: 82092
2009-09-16 23:38:26 +00:00
Fariborz Jahanian
5f41a8c4af
Test for variety of write-barriers.
...
llvm-svn: 82091
2009-09-16 23:30:59 +00:00
Fariborz Jahanian
de1d324dce
patch for generating objc'2 objc_assign_ivar. WIP.
...
llvm-svn: 82090
2009-09-16 23:11:23 +00:00
Fariborz Jahanian
a7fa6beb2e
Starting patch to generate more specific API for objc's
...
GC. Currently, new API will be generated under
clang-cc's -fobjc-newgc-api flag which will eventually
become the default. WIP.
llvm-svn: 82082
2009-09-16 21:37:16 +00:00
Fariborz Jahanian
cceedbff27
Do not generate write-barrier in indirect assignment to
...
a weak object.
llvm-svn: 82061
2009-09-16 18:09:18 +00:00
Daniel Dunbar
42684d5af8
Force triple to avoid spurious differences due to runtime choice.
...
llvm-svn: 81666
2009-09-13 01:45:29 +00:00
Fariborz Jahanian
8d6298b272
Fix a regression where write-barrier was not being generated
...
for block pointer.
llvm-svn: 81479
2009-09-10 23:38:45 +00:00
Fariborz Jahanian
2cde203392
Non fragile ABI for GNU runtime. Patch bu David Chisnall.
...
llvm-svn: 81462
2009-09-10 21:48:21 +00:00
Fariborz Jahanian
063c7720f4
More objc GC's API work for array of pointers declared
...
as __strong.
llvm-svn: 81283
2009-09-08 23:38:54 +00:00
Fariborz Jahanian
b17a190186
Fixes a regression in generating objc's GC API
...
in assiging to c pointer types with a GC'able
attribute.
llvm-svn: 81244
2009-09-08 19:45:47 +00:00
Anders Carlsson
2fb0824197
Vastly improve PredefinedExpr output, both in Sema and CodeGen. Patch by Sam Weinig!
...
llvm-svn: 81237
2009-09-08 18:24:21 +00:00
Fariborz Jahanian
f0ff9832ba
Test for generation of objc_assign_strongCast in a variety of
...
situations.
llvm-svn: 81129
2009-09-06 19:44:57 +00:00
Fariborz Jahanian
1a50477385
Fixed a property getter ir-gen crash.
...
llvm-svn: 80681
2009-09-01 17:02:21 +00:00
Fariborz Jahanian
879d726608
Re-implemented generation of objc_memmove_collectable
...
API for copying GC'able aggregates (Next runtime only).
llvm-svn: 80607
2009-08-31 19:33:16 +00:00
David Chisnall
5778fce141
Updated GNU runtime non-fragile ABI.
...
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
llvm-svn: 80591
2009-08-31 16:41:57 +00:00
Fariborz Jahanian
68f051594b
Test case for r79968 (courtesy of Anders).
...
llvm-svn: 79998
2009-08-25 16:09:22 +00:00
Devang Patel
79e3fa6e9d
Remove a test that relies on old debug info format.
...
llvm-svn: 79979
2009-08-25 06:18:11 +00:00
Fariborz Jahanian
7c07d5fed8
Remove ivarlayout bitmap optimization, instead if all zeros,
...
put out the bitmap when all objects are scanned.
llvm-svn: 79947
2009-08-24 21:55:06 +00:00
Daniel Dunbar
2a4061929f
Fix some made up triples.
...
llvm-svn: 79316
2009-08-18 05:30:27 +00:00
Daniel Dunbar
97ea867690
MultiTestRunner: Validate '&&' at the end of RUN lines.
...
- This is just to normalize, these will go away soon hopefully.
Added all the missing '&&'s that have crept in. :)
llvm-svn: 77062
2009-07-25 11:27:37 +00:00
Anders Carlsson
e2c6baf629
Don't use getLLVMFieldNo for bitfields when constructing the ivar layout maps for GC.
...
llvm-svn: 76978
2009-07-24 17:23:54 +00:00
Steve Naroff
3de6b70730
Fix a couple recent ABI regressions noticed during code review (fallout from the ObjC type system rewrite).
...
It's unfortunate that the mangling includes the low-level structs. Nevertheless, we need this for binary compatibility with GCC.
llvm-svn: 76755
2009-07-22 17:14:51 +00:00
Mike Stump
087a3f7e0d
Prep for new warning.
...
llvm-svn: 76637
2009-07-21 20:50:41 +00:00
Argyrios Kyrtzidis
d0a31d2c5a
Remove a file from the test directory that was added by mistake.
...
llvm-svn: 76518
2009-07-21 00:17:57 +00:00
Argyrios Kyrtzidis
851b208a20
Use temporary output to avoid running index-test with the same commands multiple times.
...
llvm-svn: 76513
2009-07-21 00:06:46 +00:00
Sebastian Redl
c88ab62c87
Fix RUN line to not litter the test directory.
...
llvm-svn: 76320
2009-07-18 15:13:36 +00:00
Fariborz Jahanian
c3443a3bf3
ir-gen for --/++ operators of objc object pointers
...
in 32bit abi.
llvm-svn: 76109
2009-07-16 22:04:59 +00:00
Devang Patel
894caff444
Enable. Now the LLVM dwarfwriter does not print extra '1' prefix in symbol names (rev. 75875)
...
llvm-svn: 75876
2009-07-16 01:02:47 +00:00
Devang Patel
9be7b20401
Revert 75648 for now. It is causing test failures.
...
llvm-svn: 75684
2009-07-14 21:31:22 +00:00
Devang Patel
d6c256696b
Use LLVM mangler to get mangled name for debug info entry.
...
llvm-svn: 75589
2009-07-14 02:47:58 +00:00
Daniel Dunbar
f5c79709bc
Update debug info generation for ObjCObjectPointer changes.
...
- Previously this would crash on recursive types, and it was also incorrectly
stripping off a level of indirection.
- I'm not 100% convinced this is all correct, but it should be a monotonic
improvment.
llvm-svn: 75582
2009-07-14 01:20:56 +00:00
Devang Patel
caadf8c9dc
I just revertd llvm patch.
...
XFAIL this for now until I prepare clang specific patch.
llvm-svn: 75575
2009-07-14 00:56:16 +00:00
Devang Patel
450f266095
New testcase for rev 75503.
...
llvm-svn: 75504
2009-07-13 21:20:20 +00:00
Devang Patel
9c3a0188cd
Update debug info type cache after fwd decl is replaced by real decl.
...
llvm-svn: 75473
2009-07-13 17:03:14 +00:00
Daniel Dunbar
024c68b734
Force NeXT runtime for this test.
...
llvm-svn: 75400
2009-07-11 23:04:43 +00:00
Daniel Dunbar
7e5f052772
Fix type conversion of ObjCObjectPointerType.
...
- Previous code was based on a misunderstanding (on my part) of the type
representation.
llvm-svn: 75385
2009-07-11 21:12:14 +00:00
Daniel Dunbar
9d82da40ec
Generate correct prototype for objc_enumerationMutation.
...
- This was a latent bug exposed by the recent objc type changes.
llvm-svn: 75383
2009-07-11 20:32:50 +00:00
Steve Naroff
7cae42b07a
This patch includes a conceptually simple, but very intrusive/pervasive change.
...
The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches.
This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic.
By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time.
Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks.
llvm-svn: 75314
2009-07-10 23:34:53 +00:00