whoo hoo I did something! :)

llvm-svn: 414
This commit is contained in:
Chris Lattner 2001-09-07 16:10:35 +00:00
parent 3b78fa378e
commit 56ba0bb0da
1 changed files with 4 additions and 9 deletions

View File

@ -1,8 +1,6 @@
* Don't emit constant pool blocks for methods with empty constant pools!
* Need to implement getelementptr, load, and store for indirection through * Need to implement getelementptr, load, and store for indirection through
arrays and multidim arrays arrays and multidim arrays
* BytecodeWriter should use a deque<unsigned char> instead of vector!!!
* Eliminate the method signature from a call instruction. It should look like
this: call int %func(int 2, int %reg118)
* Indirect calls should use the icall instruction * Indirect calls should use the icall instruction
* Rewrite the llvm parser/lexer in http://www.antlr.org when time permits. * Rewrite the llvm parser/lexer in http://www.antlr.org when time permits.
They actually do C++. Imagine that. They actually do C++. Imagine that.
@ -10,15 +8,13 @@
* Fix DCE to elminate br <c>, %L1, %L1 so that it can optimize the main of * Fix DCE to elminate br <c>, %L1, %L1 so that it can optimize the main of
fib.ll better. Currently I have to do this to get best results: fib.ll better. Currently I have to do this to get best results:
as < fib.ll | opt -inline -sccp -dce -sccp -dce |dis as < fib.ll | opt -inline -sccp -dce -sccp -dce |dis
* fix the constprop br <x> <dst1> <dst1> case. Must handle PHI nodes correctly
* Fix DCE to work better, so that SCCP can show it's true value. * Fix DCE to work better, so that SCCP can show it's true value.
* Implement ADCE * Implement ADCE
* Fix the const pool printer to print out constants in some sort of "sorted" * Fix the const pool printer to print out constants in some sort of "sorted"
order. Then enable TestOptimizer.sh to diff -sccp output. Currently it order. Then enable TestOptimizer.sh to diff -sccp output. Currently it
doesn't work because the diff fails because of ordering of the constant doesn't work because the diff fails because of ordering of the constant
pool. :( pool. :(
* Maybe ConstantPool objects should keep themselves sorted as things are
inserted.
* Enable DoConstantPoolMerging to do trivial DCE of constant values.
* Should provide "castTerminator, castPHI, etc" functions in Instruction, and * Should provide "castTerminator, castPHI, etc" functions in Instruction, and
similar functions in other classes, that effectively do dynamic casts. This similar functions in other classes, that effectively do dynamic casts. This
would allow code like this: would allow code like this:
@ -37,16 +33,15 @@
* Finish xvcg output * Finish xvcg output
* pred/succ iterators on basic blocks don't handle switch statements correctly * pred/succ iterators on basic blocks don't handle switch statements correctly
* Provide a pass that eliminates critical edges from the CFG * Provide a pass that eliminates critical edges from the CFG
* 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.
* I need to have a way to prevent taking the address of a constant pool * I need to have a way to prevent taking the address of a constant pool
reference. You should only be able to take the address of a variable. reference. You should only be able to take the address of a variable.
Maybe taking the address of a constant copies it? What about virtual Maybe taking the address of a constant copies it? What about virtual
function tables? Maybe a const pointer would be better... function tables? Maybe a const pointer would be better... Alternatively,
we could alloca a local variable, copy a constant into it, and use that...
* Need a way to attach bytecode block info at various levels of asm code. * Need a way to attach bytecode block info at various levels of asm code.
* Need to be able to inflate recursive types. %x = { *%x }, %x = %x ()
* Recognize and save comments in assembly and bytecode format * Recognize and save comments in assembly and bytecode format
* Encode line number table in bytecode (like #line), optional table * Encode line number table in bytecode (like #line), optional table