[llvm-commits] [llvm] r96598 - /llvm/trunk/docs/AdvancedGetElementPtr.html
Török Edwin
edwintorok at gmail.com
Mon Feb 22 01:14:25 PST 2010
On 02/18/2010 08:40 PM, Dan Gohman wrote:
> Author: djg
> Date: Thu Feb 18 12:40:29 2010
> New Revision: 96598
>
> URL: http://llvm.org/viewvc/llvm-project?rev=96598&view=rev
> Log:
> Clarify that ptrtoint+inttoptr are an alternative to GEP which are
> not restricted by the GEP rules.
>
> Modified:
> llvm/trunk/docs/AdvancedGetElementPtr.html
>
> Modified: llvm/trunk/docs/AdvancedGetElementPtr.html
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/AdvancedGetElementPtr.html?rev=96598&r1=96597&r2=96598&view=diff
>
> ==============================================================================
> --- llvm/trunk/docs/AdvancedGetElementPtr.html (original)
> +++ llvm/trunk/docs/AdvancedGetElementPtr.html Thu Feb 18 12:40:29 2010
> @@ -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>
Won't optimizers convert that back to a GEP?
Best regards,
--Edwin
More information about the llvm-commits
mailing list