Changes in directory llvm/docs:
GetElementPtr.html updated: 1.6 -> 1.7 --- Log message: Some more correction to the examples, thanks to Chris Lattner. --- Diffs of the changes: (+8 -5) GetElementPtr.html | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) Index: llvm/docs/GetElementPtr.html diff -u llvm/docs/GetElementPtr.html:1.6 llvm/docs/GetElementPtr.html:1.7 --- llvm/docs/GetElementPtr.html:1.6 Mon Aug 14 22:46:38 2006 +++ llvm/docs/GetElementPtr.html Mon Aug 14 22:57:05 2006 @@ -77,21 +77,24 @@ <pre> AType* Foo; ... - X = Foo[1];</pre> + X = &Foo->F;</pre> <p>it is natural to think that there is only one index, the constant value <tt>1</tt>. This results from C allowing you to treat pointers and arrays as equivalent. LLVM doesn't. In this example, Foo is a pointer. That pointer must be indexed. To arrive at the same address location as the C code, you would provide the GEP instruction with two indices. The first indexes through the - pointer, the second index the second element of the array.</p> + pointer, the second index the element of the structure just as if it was:</p> + <pre> + X = &Foo[0].F;</pre> <p>Sometimes this question gets rephrased as:</p> <blockquote><i>Why is it okay to index through the first pointer, but subsequent pointers won't be dereferenced?</i></blockquote> <p>The answer is simply because memory does not have to be accessed to perform the computation. The first operand to the GEP instruction must be a value of a pointer type. The value of the pointer is provided directly to - the GEP instruction without any need for accessing memory. It must, - therefore be indexed like any other operand. Consider this example:</p> + the GEP instruction as an operand without any need for accessing memory. It + must, therefore be indexed and requires an index operand. Consider this + example:</p> <pre> struct munger_struct { int f1; @@ -626,7 +629,7 @@ <a href="http://validator.w3.org/check/referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a> <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br/> - Last modified: $Date: 2006/08/15 03:46:38 $ + Last modified: $Date: 2006/08/15 03:57:05 $ </address> </body> </html> _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits