blob: 38269754ef5a2d80c21e8f048ec89ffffc634bae [file] [log] [blame]
Chris Lattner39d4e7a2001-07-14 06:04:27 +00001* Rewrite the llvm parser/lexer in http://www.antlr.org when time permits.
2 They actually do C++. Imagine that.
Chris Lattnere758b672001-06-30 06:37:33 +00003* Fix DCE to elminate br <c>, %L1, %L1 so that it can optimize the main of
4 fib.ll better. Currently I have to do this to get best results:
Chris Lattnere17733d2001-07-03 05:35:04 +00005 as < fib.ll | opt -inline -sccp -dce -sccp -dce |dis
Chris Lattner56ba0bb2001-09-07 16:10:35 +00006* fix the constprop br <x> <dst1> <dst1> case. Must handle PHI nodes correctly
Chris Lattner9b07b712001-06-29 05:21:05 +00007* Fix DCE to work better, so that SCCP can show it's true value.
8* Implement ADCE
Chris Lattnereed70702001-06-27 23:24:50 +00009* Think about whether edge split SSA form would be useful to do.
10* Inlining should attempt to give block names the same name in the inlined
11 method (using SymbolTable::getUniqueName)
Chris Lattnera83a2ca2001-06-20 23:09:27 +000012* The dropAllReferences code can be a noop when NDEBUG!!!
Chris Lattnerf3a34d62001-06-20 19:26:00 +000013* Finish xvcg output
Chris Lattner7399a102001-06-11 15:03:43 +000014* pred/succ iterators on basic blocks don't handle switch statements correctly
Chris Lattner2f7c9632001-06-06 20:29:01 +000015* Provide a pass that eliminates critical edges from the CFG
Chris Lattner2f7c9632001-06-06 20:29:01 +000016* I need to provide an option to the bytecode loader to ignore memory
17 dependance edges. Instead, the VM would just treat memory operations
18 (load, store, getfield, putfield, call) as pinned instructions.
Chris Lattner2f7c9632001-06-06 20:29:01 +000019* Need a way to attach bytecode block info at various levels of asm code.
Chris Lattner2f7c9632001-06-06 20:29:01 +000020* Recognize and save comments in assembly and bytecode format
21* Encode line number table in bytecode (like #line), optional table
22
23* Encode negative relative offsets in the bytecode file
24
25* Implement switch to switch on a constant pool array of type:
26 [{ label, int }] or [label] (lookup vs index switch)
27* Apparently bison has a %pure_parser option. Maybe useful for Assembly/Parser
28
29* Implement a header file that can read either assembly or bytecode, implement
30 a writer that can output either based on what is read with this reader..
31* Implement the following derived types:
Chris Lattner2f7c9632001-06-06 20:29:01 +000032 * "packed format", like this: [4 x sbyte]: Packed SIMD datatype
33* Maybe 'tailcall' also?
Chris Lattner2f7c9632001-06-06 20:29:01 +000034* Include a method level bytecode block that defines a mapping between values
35 and registers that defines a minimally register allocated code. This can
36 make me finally address how to encode extensions in assembly.
37* Bytecode reader should use extensions that may or may not be linked into the
38 application to read blocks. Thus an easy way to ignore symbol table info
39 would be to not link in that reader into the app.