I looked at the other one. Beyond my question about the name, this looks great!
Jun 10 2019
This is exactly what I was imagining! This will enable the frontend to opt into this optimization without having to touch the optimizer. One nit: can we use a different name than "arc_retain_agnostic". Have you considered something like "arc_inert"? My fear is that at a glance (without thinking), you would think that the attribute would have something only to do with retain when we are really talking about ARC value operations. Beyond that looks great!
May 28 2019
I don't remember. That being said, this should be a conservative optimization. What if someone adds in the future a different global where this isn't a no-op. Is it possible if you know what the global is to add a whitelist that you only care about those 2 things.
Dec 10 2017
I do not work on objcarc any longer. +CC Duncan.
Feb 8 2017
Thanks for running it through git-clang-format. LGTM!
Did you run this through git-clang-format?
Feb 17 2016
Chandler: Later tonight I am going to figure out what I need to do to my out of tree project to make this work. Hopefully everything is smooth.
Jan 31 2016
I think that my response via email did not hit phabriactor. So sorry for the delay.
Jan 28 2016
I failed at using fabricator. I am going to close this until I get in the attribute version. That is what I meant to give to Doug to review.
Jan 12 2016
Removed an unneeded static cast.
I also am not appropriate for reviewing this. Resigning as well.
Oct 24 2015
Oct 19 2015
I just prepared all of the code that I need internally to work with this and it enables me to work through/verify all my use cases. This LGTM! Thanks Chandler!
Dec 16 2014
Dec 14 2014
I would comment this a little differently. I think it is good to have the Hacker's Delight mention, but IIRC LLVM has some specific rules about this. I would just ask on the list or irc. The actual implementation looks fine to me (it is exactly the same as hacker's delight).