summaryrefslogtreecommitdiffstats
path: root/llvm/docs
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-02-18 18:40:29 +0000
committerDan Gohman <gohman@apple.com>2010-02-18 18:40:29 +0000
commit9a36847b4316293aa57b424bc86869e5dc035fd4 (patch)
treeea7a1cb52325427f4b277ce311cc25308ba608da /llvm/docs
parentbffa44f9750c1314de167905dc6bc3f8f32766ce (diff)
downloadbcm5719-llvm-9a36847b4316293aa57b424bc86869e5dc035fd4.tar.gz
bcm5719-llvm-9a36847b4316293aa57b424bc86869e5dc035fd4.zip
Clarify that ptrtoint+inttoptr are an alternative to GEP which are
not restricted by the GEP rules. llvm-svn: 96598
Diffstat (limited to 'llvm/docs')
-rw-r--r--llvm/docs/AdvancedGetElementPtr.html20
1 files changed, 14 insertions, 6 deletions
diff --git a/llvm/docs/AdvancedGetElementPtr.html b/llvm/docs/AdvancedGetElementPtr.html
index 65ccbc48291..a6baa132192 100644
--- a/llvm/docs/AdvancedGetElementPtr.html
+++ b/llvm/docs/AdvancedGetElementPtr.html
@@ -200,9 +200,9 @@
to null?</b></a>
</div>
<div class="doc_text">
- <p>You can compute an address that way, but you can't use that pointer to
- actually access the object if you do, unless the object is managed
- outside of LLVM.</p>
+ <p>You can compute an address that way, but if you use GEP to do the add,
+ you can't use that pointer to actually access the object, unless the
+ object is managed outside of LLVM.</p>
<p>The underlying integer computation is sufficiently defined; null has a
defined value -- zero -- and you can add whatever value you want to it.</p>
@@ -211,6 +211,11 @@
object with such a pointer. This includes GlobalVariables, Allocas, and
objects pointed to by noalias pointers.</p>
+ <p>If you really need this functionality, you can do the arithmetic with
+ explicit integer instructions, and use inttoptr to convert the result to
+ an address. Most of GEP's special aliasing rules do not apply to pointers
+ computed from ptrtoint, arithmetic, and inttoptr sequences.</p>
+
</div>
<!-- *********************************************************************** -->
@@ -219,9 +224,12 @@
that value to one address to compute the other address?</b></a>
</div>
<div class="doc_text">
- <p>As with arithmetic on null, You can compute an address that way, but
- you can't use that pointer to actually access the object if you do,
- unless the object is managed outside of LLVM.</p>
+ <p>As with arithmetic on null, You can use GEP to compute an address that
+ way, but you can't use that pointer to actually access the object if you
+ do, unless the object is managed outside of LLVM.</p>
+
+ <p>Also as above, ptrtoint and inttoptr provide an alternative way to do this
+ which do not have this restriction.</p>
</div>
OpenPOWER on IntegriCloud