blob: 50c7cd340f70883bdfaf7832ba8a65823469b24a [file] [log] [blame]
Chris Lattnerf3a34d62001-06-20 19:26:00 +00001* Finish xvcg output
Chris Lattner7399a102001-06-11 15:03:43 +00002* pred/succ iterators on basic blocks don't handle switch statements correctly
Chris Lattner2cafe602001-06-07 16:58:13 +00003* Enhance BB to make predecessor handling easier (to update PHI nodes)
Chris Lattner2f7c9632001-06-06 20:29:01 +00004* Provide a pass that eliminates critical edges from the CFG
Chris Lattner7399a102001-06-11 15:03:43 +00005* Provide a print pass to print out xvcg format files for vis
Chris Lattner2f7c9632001-06-06 20:29:01 +00006* I need to provide an option to the bytecode loader to ignore memory
7 dependance edges. Instead, the VM would just treat memory operations
8 (load, store, getfield, putfield, call) as pinned instructions.
9* I need to have a way to prevent taking the address of a constant pool
10 reference. You should only be able to take the address of a variable.
11 Maybe taking the address of a constant copies it? What about virtual
12 function tables? Maybe a const pointer would be better...
13* Structures should be accessed something like this: ubyte is ok. Limits
14 structure size to 256 members. This can be fixed later by either:
15 1. adding varient that takes ushort
16 2. Splitting structures into nested structures each of half size
Chris Lattner7399a102001-06-11 15:03:43 +000017 <float> %f = load *{int, {float}} Str, 1, 0
18 store float %f, *{int, {float}} Str, 1, 0
Chris Lattner2f7c9632001-06-06 20:29:01 +000019* I'm noticing me writing a lot of code that looks like this (dtor material here):
20 ConstPool.dropAllReferences();
21 ConstPool.delete_all();
22 ConstPool.setParent(0);
23 ~ConstPool
24
25* Need a way to attach bytecode block info at various levels of asm code.
26* Rename "ConstantPool" to "ConstPool"
27* Maybe ConstantPool objects should keep themselves sorted as things are
28 inserted.
29* Need to be able to inflate recursive types. %x = { *%x }, %x = %x ()
30* Recognize and save comments in assembly and bytecode format
31* Encode line number table in bytecode (like #line), optional table
32
33* Encode negative relative offsets in the bytecode file
34
35* Implement switch to switch on a constant pool array of type:
36 [{ label, int }] or [label] (lookup vs index switch)
37* Apparently bison has a %pure_parser option. Maybe useful for Assembly/Parser
38
39* Implement a header file that can read either assembly or bytecode, implement
40 a writer that can output either based on what is read with this reader..
41* Implement the following derived types:
42 * structure/record { int %foo, int %bar} or { %foo = int, int }
43 * pointer int *
44 * "packed format", like this: [4 x sbyte]: Packed SIMD datatype
45* Maybe 'tailcall' also?
Chris Lattner2f7c9632001-06-06 20:29:01 +000046* Include a method level bytecode block that defines a mapping between values
47 and registers that defines a minimally register allocated code. This can
48 make me finally address how to encode extensions in assembly.
49* Bytecode reader should use extensions that may or may not be linked into the
50 application to read blocks. Thus an easy way to ignore symbol table info
51 would be to not link in that reader into the app.