<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emscripten-fastcomp/lib/Transforms/ObjCARC, branch master</title>
<subtitle>LLVM with the emscripten fastcomp javascript backend</subtitle>
<id>https://git.amat.us/emscripten-fastcomp/atom/lib/Transforms/ObjCARC?h=master</id>
<link rel='self' href='https://git.amat.us/emscripten-fastcomp/atom/lib/Transforms/ObjCARC?h=master'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/'/>
<updated>2013-05-05T00:40:33Z</updated>
<entry>
<title>Add ArrayRef constructor from None, and do the cleanups that this constructor enables</title>
<updated>2013-05-05T00:40:33Z</updated>
<author>
<name>Dmitri Gribenko</name>
<email>gribozavr@gmail.com</email>
</author>
<published>2013-05-05T00:40:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=5c332dbd30d9398ed25b30c3080506f7b8e92290'/>
<id>urn:sha1:5c332dbd30d9398ed25b30c3080506f7b8e92290</id>
<content type='text'>
Patch by Robert Wilhelm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181138 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>This patch breaks up Wrap.h so that it does not have to include all of </title>
<updated>2013-05-01T20:59:00Z</updated>
<author>
<name>Filip Pizlo</name>
<email>fpizlo@apple.com</email>
</author>
<published>2013-05-01T20:59:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=40be1e85665d10f5444186f0e7106e368dd735b8'/>
<id>urn:sha1:40be1e85665d10f5444186f0e7106e368dd735b8</id>
<content type='text'>
the things, and renames it to CBindingWrapping.h.  I also moved 
CBindingWrapping.h into Support/.

This new file just contains the macros for defining different wrap/unwrap 
methods.

The calls to those macros, as well as any custom wrap/unwrap definitions 
(like for array of Values for example), are put into corresponding C++ 
headers.

Doing this required some #include surgery, since some .cpp files relied 
on the fact that including Wrap.h implicitly caused the inclusion of a 
bunch of other things.

This also now means that the C++ headers will include their corresponding 
C API headers; for example Value.h must include llvm-c/Core.h.  I think 
this is harmless, since the C API headers contain just external function 
declarations and some C types, so I don't believe there should be any 
nasty dependency issues here.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180881 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add in some conditional compilation in order to silence an unused variable warning.</title>
<updated>2013-04-29T07:29:08Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-29T07:29:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=f4fc9b175306a49c3d3c72f1e9e08f8ea2038c51'/>
<id>urn:sha1:f4fc9b175306a49c3d3c72f1e9e08f8ea2038c51</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180700 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[objc-arc] Apply the RV optimization to retains next to calls in ObjCARCContract instead of ObjCARCOpts.</title>
<updated>2013-04-29T06:53:53Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-29T06:53:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=f11a6856cc28875133cef0f7bbad2b7de3a83776'/>
<id>urn:sha1:f11a6856cc28875133cef0f7bbad2b7de3a83776</id>
<content type='text'>
Turning retains into retainRV calls disrupts the data flow analysis in
ObjCARCOpts. Thus we move it as late as we can by moving it into
ObjCARCContract.

We leave in the conversion from retainRV -&gt; retain in ObjCARCOpt since
it enables the dataflow analysis.

rdar://10813093

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180698 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Added statistics to count the number of retains/releases before/after optimization.</title>
<updated>2013-04-29T06:16:57Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-29T06:16:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=fe7ea985fac4abb4056fa5f020449a2802a81604'/>
<id>urn:sha1:fe7ea985fac4abb4056fa5f020449a2802a81604</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180697 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Removed trailing whitespace.</title>
<updated>2013-04-29T06:16:55Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-29T06:16:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=2088d917922d02b452608e2c46c5ee9886a723dd'/>
<id>urn:sha1:2088d917922d02b452608e2c46c5ee9886a723dd</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180696 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix for r180693. = /.</title>
<updated>2013-04-29T05:25:39Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-29T05:25:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=210a496a6a43726e65bf0b07db98a84c308a7be1'/>
<id>urn:sha1:210a496a6a43726e65bf0b07db98a84c308a7be1</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180694 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[objc-arc-annotations] Moved the disabling of call movement to ConnectTDBUTraversals so that I can prevent Changed = true from being set. This prevents an infinite loop.</title>
<updated>2013-04-29T05:13:13Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-29T05:13:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=e056397e8115a8ef1b22908695fa45d6dfee9d71'/>
<id>urn:sha1:e056397e8115a8ef1b22908695fa45d6dfee9d71</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180693 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Revert "[objc-arc] Added ImpreciseAutoreleaseSet to track autorelease calls that were once autoreleaseRV instructions."</title>
<updated>2013-04-26T01:12:18Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-26T01:12:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=d15d29e7c8290ff27457d5244360f894d806b083'/>
<id>urn:sha1:d15d29e7c8290ff27457d5244360f894d806b083</id>
<content type='text'>
This reverts commit r180222.

I think this might tie in with a different problem which will require a
different approach potentially. I am reverting this in the case I need to go
down that second path.

My apologies for the noise. = /.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180590 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[objc-arc] Added ImpreciseAutoreleaseSet to track autorelease calls that were once autoreleaseRV instructions.</title>
<updated>2013-04-24T22:18:18Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-04-24T22:18:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=3f4613310deac06c5a43c6ff76e7f9ab1e93503c'/>
<id>urn:sha1:3f4613310deac06c5a43c6ff76e7f9ab1e93503c</id>
<content type='text'>
Due to the semantics of ARC, we must be extremely conservative with autorelease
calls inserted by the frontend since ARC gaurantees that said object will be in
the autorelease pool after that point, an optimization invariant that the
optimizer must respect.

On the other hand, we are allowed significantly more flexibility with
autoreleaseRV instructions.

Often times though this flexibility is disrupted by early transformations which
transform objc_autoreleaseRV =&gt; objc_autorelease if said instruction is no
longer being used as part of an RV pair (generally due to inlining). Since we
can not tell the difference in between an autorelease put into place by the
frontend and one created through said ``strength reduction'' we can not perform
these optimizations.

The addition of this set gets around said issues by allowing us to differentiate
in between said two cases.

rdar://problem/13697741.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180222 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
