[Attributor] Deduce "nosync" function attribute.

Introduce and deduce "nosync" function attribute to indicate that a function
does not synchronize with another thread in a way that other thread might free memory.

Reviewers: jdoerfert, jfb, nhaehnle, arsenm

Subscribers: wdng, hfinkel, nhaenhle, mehdi_amini, steven_wu,
dexonsmith, arsenm, uenoku, hiraditya, jfb, llvm-commits

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

llvm-svn: 365830
This commit is contained in:
Stefan Stipanovic
2019-07-11 21:37:40 +00:00
parent 7d2019bb96
commit 0626367202
19 changed files with 675 additions and 60 deletions

View File

@@ -809,6 +809,7 @@ Function *CodeExtractor::constructFunction(const ValueSet &inputs,
case Attribute::NoBuiltin:
case Attribute::NoCapture:
case Attribute::NoReturn:
case Attribute::NoSync:
case Attribute::None:
case Attribute::NonNull:
case Attribute::ReadNone: