David Chisnall
cdd207e43e
Add bitmaps for strong / weak ivar layout (GNUstep runtime).
...
llvm-svn: 141085
2011-10-04 15:35:30 +00:00
John McCall
248512a573
When performing an @throw in ARC, retain + autorelease
...
the pointer, being sure to do so before running cleanups
associated with that full-expression. rdar://10042689
llvm-svn: 140945
2011-10-01 10:32:24 +00:00
Benjamin Kramer
76399eb2ad
de-tmpify clang.
...
llvm-svn: 140637
2011-09-27 21:06:10 +00:00
David Blaikie
83d382b1ca
Switch assert(0/false) llvm_unreachable.
...
llvm-svn: 140367
2011-09-23 05:06:16 +00:00
Richard Trieu
e4f3180fec
Change "ivar" to true for a boolean function argument. Since string literals are cast to true, this should no effect on behavior.
...
llvm-svn: 140231
2011-09-21 02:46:06 +00:00
Douglas Gregor
79a91418bd
Switch LangOptions over to a .def file that describes header of the
...
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
2011-09-13 17:21:33 +00:00
Chris Lattner
5ec04a51fa
switch clang to use the new-new way of creating llvm::StructType's.
...
llvm-svn: 137472
2011-08-12 17:43:31 +00:00
David Chisnall
51ed0d112b
Fix typo so we don't use the wrong function for ending ObjC++ catch blocks (GNU runtimes)
...
llvm-svn: 137052
2011-08-08 17:26:06 +00:00
David Chisnall
28dc7f94f8
Fix linkage type for tentative definition of ivar offset variables (GNUstep runtime)
...
llvm-svn: 136628
2011-08-01 17:36:53 +00:00
Jay Foad
5709f7c5f7
Remove some unnecessary single element array temporaries.
...
llvm-svn: 136461
2011-07-29 13:56:53 +00:00
Chris Lattner
0e62c1cc0b
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
...
them into the clang namespace.
llvm-svn: 135852
2011-07-23 10:55:15 +00:00
Jordy Rose
a91768e569
Add a const overload for ObjCInterfaceDecl::all_declared_ivar_begin.
...
This was previously not-const only because it has to lazily construct a chain
of ivars the first time it is called (and after the chain is invalidated).
In practice, all the clients were just const_casting their const Decls;
all those now-unnecessary const_casts have been removed.
llvm-svn: 135741
2011-07-22 02:08:32 +00:00
Jay Foad
ed8db7d9df
Convert ConstantExpr::getGetElementPtr and
...
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.
llvm-svn: 135673
2011-07-21 14:31:17 +00:00
Chris Lattner
2192fe50da
de-constify llvm::Type, patch by David Blaikie!
...
llvm-svn: 135370
2011-07-18 04:24:23 +00:00
Jay Foad
5bd375a6cc
Convert CallInst and InvokeInst APIs to use ArrayRef.
...
llvm-svn: 135265
2011-07-15 08:37:34 +00:00
Jay Foad
7c57be3e2b
De-constify Types in StructType::get() and TargetData::getIntPtrType().
...
llvm-svn: 134893
2011-07-11 09:56:20 +00:00
Chris Lattner
a5f58b05e8
clang side to match the LLVM IR type system rewrite patch.
...
llvm-svn: 134831
2011-07-09 17:41:47 +00:00
David Chisnall
1bfe6d374d
If we're using the pure non-fragile ABI, then skip some of the contortions required to support the transitional ABI.
...
llvm-svn: 134612
2011-07-07 12:34:51 +00:00
David Chisnall
a918b88952
Set a flag to tell the runtime when we're compiling in ARC mode and use the pure-nonfragile ABI for both ARC and GC mode.
...
llvm-svn: 134611
2011-07-07 11:22:31 +00:00
David Chisnall
08d6733ed7
Add support for weakly imported classes (GNU runtime).
...
llvm-svn: 134140
2011-06-30 10:14:37 +00:00
David Chisnall
920e83b00b
Add ARC support for the GNUstep runtime.
...
llvm-svn: 134065
2011-06-29 13:16:41 +00:00
Fariborz Jahanian
831f0fc2e0
Support for catching objc pointer objects in c++ catch-statement
...
in fragile abi mode and some other cleanups. // rdar://8940528
llvm-svn: 133747
2011-06-23 19:00:08 +00:00
Fariborz Jahanian
0a3cfcc87f
Alloa catching Objective-C id's being thrown with C++ throw
...
in Darwin's fragile abi mode. // rdar://8940528
llvm-svn: 133639
2011-06-22 20:21:51 +00:00
Chris Lattner
e64d7ba153
Update to match mainline ConstantStruct::get API change. Also, use
...
ConvertType on InitListExprs as they are being converted. This is
needed for a forthcoming patch, and improves the IR generated anyway
(see additional type names in testcases).
This patch also converts a bunch of std::vector's in CGObjCMac to use
C arrays. There are a ton more that should be converted as well.
llvm-svn: 133413
2011-06-20 04:01:35 +00:00
Chris Lattner
845511fe1c
update for api change.
...
llvm-svn: 133365
2011-06-18 22:49:11 +00:00
John McCall
31168b077c
Automatic Reference Counting.
...
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
llvm-svn: 133103
2011-06-15 23:02:42 +00:00
David Chisnall
fcb37e944f
Fix another incorrect type bug.
...
llvm-svn: 132311
2011-05-30 12:00:26 +00:00
Benjamin Kramer
df1fb13a5c
Eliminate temporary argument vectors.
...
llvm-svn: 132260
2011-05-28 14:26:31 +00:00
David Chisnall
7441d8823f
Fix another type mismatch.
...
llvm-svn: 132259
2011-05-28 14:23:43 +00:00
David Chisnall
8a42d19b33
Fix missing cast.
...
llvm-svn: 132258
2011-05-28 14:09:01 +00:00
David Chisnall
e4e5c0f219
Remove bitcast to incorrect type.
...
llvm-svn: 132077
2011-05-25 20:33:17 +00:00
David Chisnall
b85775c3ba
Fix bug introduced with r131930.
...
llvm-svn: 131935
2011-05-23 23:15:11 +00:00
David Chisnall
1254f6efe2
Don't omit retain / release / autorelease message sends in hybrid GC mode.
...
llvm-svn: 131932
2011-05-23 23:13:25 +00:00
David Chisnall
3fe89562e8
Fix some problems where functions must be bitcast but we're expecting a llvm::Function of the right type.
...
PR9994.
llvm-svn: 131930
2011-05-23 22:33:28 +00:00
David Chisnall
5c51177981
Provide the runtime with information about the GC compile options (GNU runtimes)
...
llvm-svn: 131877
2011-05-22 22:37:08 +00:00
Fariborz Jahanian
7bd3d1c49b
Patch to fix IR-gen crash generating structure ABI which implements
...
user specified string class via -fconstant-string-class option.
pr9914.
llvm-svn: 131496
2011-05-17 22:21:16 +00:00
Eli Friedman
43dca6a8d2
Simplify code a bit by using CallArgList::add. No intended functionality change.
...
llvm-svn: 130699
2011-05-02 17:57:46 +00:00
Nick Lewycky
18a1ee7f51
Remove a dead variable flagged by gcc's -Wunused-but-set-variable. No
...
functionality change.
llvm-svn: 130672
2011-05-02 00:40:24 +00:00
David Chisnall
10d2ded910
Don't crash if the AST doesn't have a sensible ObjC id type.
...
llvm-svn: 130500
2011-04-29 14:10:35 +00:00
Jay Foad
1a180156b6
Remove unused STL header includes.
...
llvm-svn: 130068
2011-04-23 19:53:52 +00:00
Ken Dyck
0fed10e704
Replace a couple of literal 8s with ASTContext::getCharWidth(). No change in
...
functionality intended.
llvm-svn: 130002
2011-04-22 17:59:22 +00:00
Jay Foad
ea324f154b
PR9214: Convert Metadata API to use ArrayRef.
...
llvm-svn: 129929
2011-04-21 19:59:12 +00:00
Chris Lattner
57540c5be0
fix a bunch of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129559
2011-04-15 05:22:18 +00:00
David Chisnall
ec343e8544
Fix copy-and-paste bug that I introduced while tidying up the code.
...
Does anyone want to buy me a new brain?
llvm-svn: 128890
2011-04-05 17:15:18 +00:00
Jay Foad
20c0f02cc5
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
...
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128538
2011-03-30 11:28:58 +00:00
Jay Foad
27e20c3c58
(Almost) always call reserveOperandSpace() on newly created PHINodes.
...
llvm-svn: 128534
2011-03-30 11:19:06 +00:00
David Chisnall
34d00052cb
Reformatted doc comments so that they are now difficult to edit in any editor that doesn't have explicit doxygen support, as per LLVM style guidelines.
...
llvm-svn: 128335
2011-03-26 11:48:37 +00:00
David Chisnall
e8ebed3520
Added some doc comments.
...
llvm-svn: 128275
2011-03-25 14:06:20 +00:00
David Chisnall
d3858d6b0c
Continuing work on ObjC tidyup:
...
- Moved the CGObjCRuntime functions out of CGObjCMac.cpp into CGObjCRuntime.cpp
- Added generic functions in CGObjCRuntime for emitting @try and @synchronize
blocks, usable by any runtime that uses DWARF exceptions.
- Made the GNU runtimes use these functions.
It should now be possible to replace the equivalent functions in
CGObjCNonFragileABIMac with simple calls to these two functions, providing the
runtime functions as arguments. I'll post a diff to the list for review before
making any changes to the Mac runtime stuff.
llvm-svn: 128274
2011-03-25 11:57:33 +00:00
David Chisnall
76803410c2
Fixed type error in last commit (forgot that now that selectors are not
...
accessed via the indirect pointer, they don't need to be pointers to pointers).
Finished moving the message lookup code into separate subclasses for each
runtime. Also performed a few smallish related tidies.
We're now bitcasting the result of the message lookup functions, rather than
casting the lookup functions themselves, so the messages.m test needed updating
to reflect this.
llvm-svn: 128180
2011-03-23 22:52:06 +00:00