From: Chris Lattner Date: Mon, 11 Jun 2001 15:03:43 +0000 (+0000) Subject: Update documentation to reflect: X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=db0926260dae4ea1e6aa1dd90d604eb09bf865d6;p=oota-llvm.git Update documentation to reflect: * Changes in PHI node structure * Intentions for load instruction to work with structures git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/ChrisNotes.txt b/docs/ChrisNotes.txt index ada4b0473a7..6af61155b5a 100644 --- a/docs/ChrisNotes.txt +++ b/docs/ChrisNotes.txt @@ -1,7 +1,7 @@ -* Must update PHI node to have a pair between predecessor and value. +* pred/succ iterators on basic blocks don't handle switch statements correctly * Enhance BB to make predecessor handling easier (to update PHI nodes) * Provide a pass that eliminates critical edges from the CFG -* Provide a print hook to print out xvcg format files for vis +* Provide a print pass to print out xvcg format files for vis * I need to provide an option to the bytecode loader to ignore memory dependance edges. Instead, the VM would just treat memory operations (load, store, getfield, putfield, call) as pinned instructions. @@ -13,8 +13,8 @@ structure size to 256 members. This can be fixed later by either: 1. adding varient that takes ushort 2. Splitting structures into nested structures each of half size - %f = loadfield *{int, {float}} Str, ubyte 1, ubyte 0 - storefield float %f, *{int, {float}} Str, ubyte 1, ubyte 0 + %f = load *{int, {float}} Str, 1, 0 + store float %f, *{int, {float}} Str, 1, 0 * I'm noticing me writing a lot of code that looks like this (dtor material here): ConstPool.dropAllReferences(); ConstPool.delete_all(); @@ -42,8 +42,6 @@ * pointer int * * "packed format", like this: [4 x sbyte]: Packed SIMD datatype * Maybe 'tailcall' also? -* It might be nice to support enumerations of some sort... especially for use - as a compiler IR * Include a method level bytecode block that defines a mapping between values and registers that defines a minimally register allocated code. This can make me finally address how to encode extensions in assembly. diff --git a/docs/LangRef.html b/docs/LangRef.html index b3d6d521218..bd055edb972 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -1045,6 +1045,7 @@ Memory is allocated, a pointer is returned. 'alloca'd memory is automa
   <result> = load <ty>* <pointer>                 ; yields {ty}:result
   <result> = load <ty>* <arrayptr>, uint <idx>    ; yields {ty}:result
+  <result> = load <ty>* <structptr>{, <idx>}*     ; yields field type
 
Overview:
@@ -1052,9 +1053,9 @@ The 'load' instruction is used to read from memory.

Arguments:
-There are two forms of the 'load' instruction: one for reading from a general pointer, and one for reading from a pointer to an array.

+There are three forms of the 'load' instruction: one for reading from a general pointer, one for reading from a pointer to an array, and one for reading from a pointer to a structure.

-In the first form, '<ty>' may be any pointer type. If it is a pointer to an array, the first (zeroth) element is read from). In the second form, '<ty>' must be a pointer to an array. No bounds checking is performed on array reads.

+In the first form, '<ty>' may be any pointer type. If it is a pointer to an array, the first (zeroth) element is read from). In the second form, '<ty>' must be a pointer to an array. No bounds checking is performed on array reads. In the third form, the pointer must point to a (possibly nested) structure. There shall be one ubyte argument for each level of dereferencing involved.

Semantics:
@@ -1070,7 +1071,7 @@ In the first form, '<ty>' may be any pointer type. If it is a po store [4 x ubyte]* %array, uint 4, ubyte 124 %val = load [4 x ubyte]* %array, uint 4 ; yields {ubyte}:val = ubyte 124 - + %val = load {{int, float}}* %stptr, 0, 1 ; yields {float}:val @@ -1370,7 +1371,7 @@ more...
Chris Lattner
-Last modified: Thu May 31 17:36:39 CDT 2001 +Last modified: Mon Jun 11 09:30:45 CDT 2001