mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 19:12:56 +02:00
Try to make the meaning of 'nocapture' a bit clearer. I
commented out the line about simplifylibcalls because I think this doesn't work in the release (it was fixed in svn after the release branched). llvm-svn: 65846
This commit is contained in:
parent
8b2f5e96ea
commit
18cb21f2cb
@ -368,13 +368,16 @@ produces a .o file (thus they are invisible to the linker).</li>
|
||||
<li>LLVM IR supports two new attributes for better alias analysis. The <a
|
||||
href="LangRef.html#paramattrs">noalias</a> attribute can now be used on the
|
||||
return value of a function to indicate that it returns new memory (e.g.
|
||||
'malloc', 'calloc', etc).</li>
|
||||
|
||||
<li>The new <a href="LangRef.html#paramattrs">nocapture</a> attribute can be
|
||||
used on pointer arguments to functions that access through but do not return the
|
||||
pointer in a data structure that out lives the call (e.g. 'strlen', 'memcpy',
|
||||
and many others). The simplifylibcalls pass applies these attributes to
|
||||
standard libc functions.</li>
|
||||
'malloc', 'calloc', etc).
|
||||
The new <a href="LangRef.html#paramattrs">nocapture</a> attribute can be used
|
||||
on pointer arguments to indicate that the function does not return the pointer,
|
||||
store it in an object that outlives the call, or let the value of the pointer
|
||||
escape from the function in any other way.
|
||||
Note that it is the pointer itself that must not escape, not the value it
|
||||
points to: loading a value out of the pointer is perfectly fine.
|
||||
Many standard library functions (e.g. 'strlen', 'memcpy') have this property.
|
||||
<!-- The simplifylibcalls pass applies these attributes to standard libc functions. -->
|
||||
</li>
|
||||
|
||||
<li>The parser for ".ll" files in lib/AsmParser is now completely rewritten as a
|
||||
recursive descent parser. This parser produces better error messages (including
|
||||
|
Loading…
Reference in New Issue
Block a user