Commit Graph

160 Commits

Author SHA1 Message Date
John McCall
90939b19c0 Provide a base class for implementing a single retainable object
pointer TypeInfo more conveniently.  Have this class return true for
isSingleRetainablePointer().  Further specialize the implementations
of the value witnesses so that we no longer ever require type-specific
witnesses for reference types.

Swift SVN r1900
2012-05-18 10:02:04 +00:00
Eli Friedman
33f20a14e0 Add NewReferenceExpr, for allocating class objects.
Swift SVN r1867
2012-05-16 01:36:03 +00:00
John McCall
be2bfa9eb7 Don't emit the begin/end pointers in an array destructor if
the element type is trivial, and test that we correctly emit
loops when the element type is not trivial.

Swift SVN r1653
2012-04-26 08:07:35 +00:00
John McCall
ee61610563 Implement IR generation for NewArrayExpr.
Swift SVN r1651
2012-04-26 07:34:04 +00:00
John McCall
b3b71178a5 Fix a pair of bugs with partial updates of logical l-values:
first, we weren't registering the cleanup for the temporary
if it needed materialization, and second, we were potentially
double-consuming cleanups associated with the l-value, e.g.
subscript indices.

Swift SVN r1631
2012-04-25 09:39:22 +00:00
John McCall
bc32a8aedb Fix a bug with returning value that need to be refcounted:
we want to do a take-load out of the return address slot
instead of a normal load, or else we'll end up +1'ing an
already +1 value.

Swift SVN r1564
2012-04-23 17:47:07 +00:00
John McCall
50899952e3 Fix a consistency error: just because a value doesn't
require reference counting doesn't mean we shouldn't
add it to the explosion when "retaining" it.

Swift SVN r1500
2012-04-19 21:05:26 +00:00
John McCall
0146f895a0 Merge GenRefCount.cpp into GenHeap.cpp.
Swift SVN r1387
2012-04-11 03:44:47 +00:00
John McCall
5ad3782b01 Rework the IR-generation of initialization and teach the
compiler to enter properly-scoped cleanups to destroy local
variables.

Swift SVN r1385
2012-04-11 03:00:08 +00:00
John McCall
f3e27d90ff Change IR-generation so that it emits metadata objects for the
heap allocations it makes, and switch swift_alloc over to pass
that pointer in as well as the alignment.  Also, compute
whether a type is POD during its generation and cache that in
the object, and introduce a method on TypeInfo to destroy an
object in memory.

Swift SVN r1356
2012-04-10 06:28:22 +00:00