Commits

Michael Gottesman committed 3d8433b7f64
[arc] Add in a new semantics attribute called "arc.programtermination_point" and document it. If this semantic tag is applied to a function, then we know that: - The function does not touch any reference counted objects. - After the function is executed, all reference counted objects are leaked (most likely in preparation for program termination). This allows one, when performing ARC code motion, to ignore blocks that contain an apply to this function as long as the block does not have any other side effect having instructions. I have wanted to do this for a while but was stymied by lacking the ability to apply multiple @_semantics attributes. This is now committed to trunk so I added this attribute instead of pattern matching against fatalError (since there could be other functions with this property). rdar://19592537