summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-09 19:15:14 +0000
committerChris Lattner <sabre@nondot.org>2010-01-09 19:15:14 +0000
commit873187c0426e069e92da3b644133059a8ee3948e (patch)
tree5f13dd383afad8edc01ac63f137ff0b0d69c6385 /docs
parenta77169dbeb250d1992938650084dc799472fb956 (diff)
downloadllvm-873187c0426e069e92da3b644133059a8ee3948e.tar.gz
llvm-873187c0426e069e92da3b644133059a8ee3948e.tar.bz2
llvm-873187c0426e069e92da3b644133059a8ee3948e.tar.xz
improve documentation for linkonce to be less confusing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93066 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/LangRef.html15
1 files changed, 11 insertions, 4 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 9c6a6d91e6..6315993fdf 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -558,10 +558,17 @@ define i32 @main() { <i>; i32()* </i>
<dt><tt><b><a name="linkage_linkonce">linkonce</a></b></tt></dt>
<dd>Globals with "<tt>linkonce</tt>" linkage are merged with other globals of
- the same name when linkage occurs. This is typically used to implement
- inline functions, templates, or other code which must be generated in each
- translation unit that uses it. Unreferenced <tt>linkonce</tt> globals are
- allowed to be discarded.</dd>
+ the same name when linkage occurs. This can be used to implement
+ some forms of inline functions, templates, or other code which must be
+ generated in each translation unit that uses it, but where the body may
+ be overridden with a more definitive definition later. Unreferenced
+ <tt>linkonce</tt> globals are allowed to be discarded. Note that
+ <tt>linkonce</tt> linkage does not actually allow the optimizer to
+ inline the body of this function into callers because it doesn't know if
+ this definition of the function is the definitive definition within the
+ program or whether it will be overridden by a stronger definition.
+ To enable inlining and other optimizations, use "<tt>linkonce_odr</tt>"
+ linkage.</dd>
<dt><tt><b><a name="linkage_weak">weak</a></b></tt></dt>
<dd>"<tt>weak</tt>" linkage has the same merging semantics as