Add support for attribute 'noescape'.

Description

Add support for attribute 'noescape'.

The attribute informs the compiler that the annotated pointer parameter
of a function cannot escape and enables IRGen to attach attribute
'nocapture' to parameters that are annotated with the attribute. That is
the only optimization that currently takes advantage of 'noescape', but
there are other optimizations that will be added later that improves
IRGen for ObjC blocks.

This recommits r313722, which was reverted in r313725 because clang
couldn't build compiler-rt. It failed to build because there were
function declarations that were missing 'noescape'. That has been fixed
in r313929.

rdar://problem/19886775

Differential Revision: https://reviews.llvm.org/D32210

Details

Committed
ahatanakSep 21 2017, 5:41 PM
Differential Revision
D32210: [Sema][ObjC] Add support for attribute "noescape"
Parents
rL313944: [Analyzer] Log when auto-synthesized body is used.
Branches
Unknown
Tags
Unknown