mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
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
This commit is contained in:
parent
477c2ec3e0
commit
db0926260d
@ -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)
|
* Enhance BB to make predecessor handling easier (to update PHI nodes)
|
||||||
* Provide a pass that eliminates critical edges from the CFG
|
* 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
|
* I need to provide an option to the bytecode loader to ignore memory
|
||||||
dependance edges. Instead, the VM would just treat memory operations
|
dependance edges. Instead, the VM would just treat memory operations
|
||||||
(load, store, getfield, putfield, call) as pinned instructions.
|
(load, store, getfield, putfield, call) as pinned instructions.
|
||||||
@ -13,8 +13,8 @@
|
|||||||
structure size to 256 members. This can be fixed later by either:
|
structure size to 256 members. This can be fixed later by either:
|
||||||
1. adding varient that takes ushort
|
1. adding varient that takes ushort
|
||||||
2. Splitting structures into nested structures each of half size
|
2. Splitting structures into nested structures each of half size
|
||||||
<float> %f = loadfield *{int, {float}} Str, ubyte 1, ubyte 0
|
<float> %f = load *{int, {float}} Str, 1, 0
|
||||||
storefield float %f, *{int, {float}} Str, ubyte 1, ubyte 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):
|
* I'm noticing me writing a lot of code that looks like this (dtor material here):
|
||||||
ConstPool.dropAllReferences();
|
ConstPool.dropAllReferences();
|
||||||
ConstPool.delete_all();
|
ConstPool.delete_all();
|
||||||
@ -42,8 +42,6 @@
|
|||||||
* pointer int *
|
* pointer int *
|
||||||
* "packed format", like this: [4 x sbyte]: Packed SIMD datatype
|
* "packed format", like this: [4 x sbyte]: Packed SIMD datatype
|
||||||
* Maybe 'tailcall' also?
|
* 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
|
* Include a method level bytecode block that defines a mapping between values
|
||||||
and registers that defines a minimally register allocated code. This can
|
and registers that defines a minimally register allocated code. This can
|
||||||
make me finally address how to encode extensions in assembly.
|
make me finally address how to encode extensions in assembly.
|
||||||
|
@ -1045,6 +1045,7 @@ Memory is allocated, a pointer is returned. '<tt>alloca</tt>'d memory is automa
|
|||||||
<pre>
|
<pre>
|
||||||
<result> = load <ty>* <pointer> <i>; yields {ty}:result</i>
|
<result> = load <ty>* <pointer> <i>; yields {ty}:result</i>
|
||||||
<result> = load <ty>* <arrayptr>, uint <idx> <i>; yields {ty}:result</i>
|
<result> = load <ty>* <arrayptr>, uint <idx> <i>; yields {ty}:result</i>
|
||||||
|
<result> = load <ty>* <structptr>{, <idx>}* <i>; yields field type</i>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h5>Overview:</h5>
|
<h5>Overview:</h5>
|
||||||
@ -1052,9 +1053,9 @@ The '<tt>load</tt>' instruction is used to read from memory.<p>
|
|||||||
|
|
||||||
<h5>Arguments:</h5>
|
<h5>Arguments:</h5>
|
||||||
|
|
||||||
There are two forms of the '<tt>load</tt>' instruction: one for reading from a general pointer, and one for reading from a pointer to an array.<p>
|
There are three forms of the '<tt>load</tt>' 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.<p>
|
||||||
|
|
||||||
In the first form, '<tt><ty></tt>' may be any pointer type. If it is a pointer to an array, the first (zeroth) element is read from). In the second form, '<tt><ty></tt>' must be a pointer to an array. No bounds checking is performed on array reads.<p>
|
In the first form, '<tt><ty></tt>' may be any pointer type. If it is a pointer to an array, the first (zeroth) element is read from). In the second form, '<tt><ty></tt>' 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.<p>
|
||||||
|
|
||||||
|
|
||||||
<h5>Semantics:</h5>
|
<h5>Semantics:</h5>
|
||||||
@ -1070,7 +1071,7 @@ In the first form, '<tt><ty></tt>' may be any pointer type. If it is a po
|
|||||||
<a href="#i_store">store</a> [4 x ubyte]* %array,
|
<a href="#i_store">store</a> [4 x ubyte]* %array,
|
||||||
uint 4, ubyte 124
|
uint 4, ubyte 124
|
||||||
%val = load [4 x ubyte]* %array, uint 4 <i>; yields {ubyte}:val = ubyte 124</i>
|
%val = load [4 x ubyte]* %array, uint 4 <i>; yields {ubyte}:val = ubyte 124</i>
|
||||||
|
%val = load {{int, float}}* %stptr, 0, 1 <i>; yields {float}:val</i>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
@ -1370,7 +1371,7 @@ more...
|
|||||||
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
|
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
|
||||||
<!-- Created: Tue Jan 23 15:19:28 CST 2001 -->
|
<!-- Created: Tue Jan 23 15:19:28 CST 2001 -->
|
||||||
<!-- hhmts start -->
|
<!-- hhmts start -->
|
||||||
Last modified: Thu May 31 17:36:39 CDT 2001
|
Last modified: Mon Jun 11 09:30:45 CDT 2001
|
||||||
<!-- hhmts end -->
|
<!-- hhmts end -->
|
||||||
</font>
|
</font>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
Loading…
Reference in New Issue
Block a user